{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "17a3f6fe-8110-4d87-9168-1b2c525792f1",
   "metadata": {},
   "source": [
    "# Vintage教学准备"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5b6b78c3-4d83-4fc0-a4fc-aa45e391f693",
   "metadata": {},
   "source": [
    "## 编程环境"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4e8ad1d7-f0da-4373-8b69-ba2167f16046",
   "metadata": {},
   "source": [
    "conda版本：https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Windows-x86_64.exe\n"
   ]
  },
  {
   "cell_type": "raw",
   "id": "6638956a-93d5-4ee5-8085-b74664a48d04",
   "metadata": {},
   "source": [
    "pip install pymysql==1.0.2 -i https://pypi.douban.com/simple"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e6a56beb-4cc2-417c-966f-eb0af179816b",
   "metadata": {},
   "source": [
    "菜鸟教程：https://www.runoob.com/mysql/mysql-tutorial.html  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e04382b-2478-4246-b36c-077aa3021691",
   "metadata": {},
   "source": [
    "## 数据场景说明"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8eaf4096-0ff8-45d4-8f0b-16d351db2d18",
   "metadata": {},
   "source": [
    "### 数据读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "83508765-72be-47a0-bfc0-5d6d683fbe61",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "4f5c14d1-8b38-474e-9a6b-47c3318756e8",
   "metadata": {},
   "outputs": [],
   "source": [
    "# There are two tables, which are connected by ID.\n",
    "dataset_path = r'D:\\固态硬盘\\B站\\T11 数据库高级查询\\dataset'\n",
    "# 用户行为\n",
    "credit_record_df = pd.read_csv(os.path.join(dataset_path, 'credit_record.csv'))\n",
    "# 申请人信息\n",
    "application_record_df = pd.read_csv(os.path.join(dataset_path, 'application_record.csv'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "3ba620a6-e13d-4a82-9a0b-030d1f83aa23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>0</td>\n",
       "      <td>X</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001712</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5001712</td>\n",
       "      <td>-1</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>5001712</td>\n",
       "      <td>-2</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>5001712</td>\n",
       "      <td>-3</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>5001712</td>\n",
       "      <td>-4</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>5001712</td>\n",
       "      <td>-5</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        ID  MONTHS_BALANCE STATUS\n",
       "0  5001711               0      X\n",
       "1  5001711              -1      0\n",
       "2  5001711              -2      0\n",
       "3  5001711              -3      0\n",
       "4  5001712               0      C\n",
       "5  5001712              -1      C\n",
       "6  5001712              -2      C\n",
       "7  5001712              -3      C\n",
       "8  5001712              -4      C\n",
       "9  5001712              -5      C"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_record_df.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b159cb8f-8aa9-4165-af37-4ec42f10f688",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "209230"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(credit_record_df['STATUS'] == 'X').sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f8791cd7-c25e-460f-a09f-e08f8cd79d61",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>CODE_GENDER</th>\n",
       "      <th>FLAG_OWN_CAR</th>\n",
       "      <th>FLAG_OWN_REALTY</th>\n",
       "      <th>CNT_CHILDREN</th>\n",
       "      <th>AMT_INCOME_TOTAL</th>\n",
       "      <th>NAME_INCOME_TYPE</th>\n",
       "      <th>NAME_EDUCATION_TYPE</th>\n",
       "      <th>NAME_FAMILY_STATUS</th>\n",
       "      <th>NAME_HOUSING_TYPE</th>\n",
       "      <th>DAYS_BIRTH</th>\n",
       "      <th>DAYS_EMPLOYED</th>\n",
       "      <th>FLAG_MOBIL</th>\n",
       "      <th>FLAG_WORK_PHONE</th>\n",
       "      <th>FLAG_PHONE</th>\n",
       "      <th>FLAG_EMAIL</th>\n",
       "      <th>OCCUPATION_TYPE</th>\n",
       "      <th>CNT_FAM_MEMBERS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5008804</td>\n",
       "      <td>M</td>\n",
       "      <td>Y</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>427500.0</td>\n",
       "      <td>Working</td>\n",
       "      <td>Higher education</td>\n",
       "      <td>Civil marriage</td>\n",
       "      <td>Rented apartment</td>\n",
       "      <td>-12005</td>\n",
       "      <td>-4542</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5008805</td>\n",
       "      <td>M</td>\n",
       "      <td>Y</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>427500.0</td>\n",
       "      <td>Working</td>\n",
       "      <td>Higher education</td>\n",
       "      <td>Civil marriage</td>\n",
       "      <td>Rented apartment</td>\n",
       "      <td>-12005</td>\n",
       "      <td>-4542</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5008806</td>\n",
       "      <td>M</td>\n",
       "      <td>Y</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>112500.0</td>\n",
       "      <td>Working</td>\n",
       "      <td>Secondary / secondary special</td>\n",
       "      <td>Married</td>\n",
       "      <td>House / apartment</td>\n",
       "      <td>-21474</td>\n",
       "      <td>-1134</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>Security staff</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5008808</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>270000.0</td>\n",
       "      <td>Commercial associate</td>\n",
       "      <td>Secondary / secondary special</td>\n",
       "      <td>Single / not married</td>\n",
       "      <td>House / apartment</td>\n",
       "      <td>-19110</td>\n",
       "      <td>-3051</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Sales staff</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5008809</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>270000.0</td>\n",
       "      <td>Commercial associate</td>\n",
       "      <td>Secondary / secondary special</td>\n",
       "      <td>Single / not married</td>\n",
       "      <td>House / apartment</td>\n",
       "      <td>-19110</td>\n",
       "      <td>-3051</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Sales staff</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5008810</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>270000.0</td>\n",
       "      <td>Commercial associate</td>\n",
       "      <td>Secondary / secondary special</td>\n",
       "      <td>Single / not married</td>\n",
       "      <td>House / apartment</td>\n",
       "      <td>-19110</td>\n",
       "      <td>-3051</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Sales staff</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>5008811</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>270000.0</td>\n",
       "      <td>Commercial associate</td>\n",
       "      <td>Secondary / secondary special</td>\n",
       "      <td>Single / not married</td>\n",
       "      <td>House / apartment</td>\n",
       "      <td>-19110</td>\n",
       "      <td>-3051</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Sales staff</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>5008812</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>283500.0</td>\n",
       "      <td>Pensioner</td>\n",
       "      <td>Higher education</td>\n",
       "      <td>Separated</td>\n",
       "      <td>House / apartment</td>\n",
       "      <td>-22464</td>\n",
       "      <td>365243</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>5008813</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>283500.0</td>\n",
       "      <td>Pensioner</td>\n",
       "      <td>Higher education</td>\n",
       "      <td>Separated</td>\n",
       "      <td>House / apartment</td>\n",
       "      <td>-22464</td>\n",
       "      <td>365243</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>5008814</td>\n",
       "      <td>F</td>\n",
       "      <td>N</td>\n",
       "      <td>Y</td>\n",
       "      <td>0</td>\n",
       "      <td>283500.0</td>\n",
       "      <td>Pensioner</td>\n",
       "      <td>Higher education</td>\n",
       "      <td>Separated</td>\n",
       "      <td>House / apartment</td>\n",
       "      <td>-22464</td>\n",
       "      <td>365243</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        ID CODE_GENDER FLAG_OWN_CAR FLAG_OWN_REALTY  CNT_CHILDREN  \\\n",
       "0  5008804           M            Y               Y             0   \n",
       "1  5008805           M            Y               Y             0   \n",
       "2  5008806           M            Y               Y             0   \n",
       "3  5008808           F            N               Y             0   \n",
       "4  5008809           F            N               Y             0   \n",
       "5  5008810           F            N               Y             0   \n",
       "6  5008811           F            N               Y             0   \n",
       "7  5008812           F            N               Y             0   \n",
       "8  5008813           F            N               Y             0   \n",
       "9  5008814           F            N               Y             0   \n",
       "\n",
       "   AMT_INCOME_TOTAL      NAME_INCOME_TYPE            NAME_EDUCATION_TYPE  \\\n",
       "0          427500.0               Working               Higher education   \n",
       "1          427500.0               Working               Higher education   \n",
       "2          112500.0               Working  Secondary / secondary special   \n",
       "3          270000.0  Commercial associate  Secondary / secondary special   \n",
       "4          270000.0  Commercial associate  Secondary / secondary special   \n",
       "5          270000.0  Commercial associate  Secondary / secondary special   \n",
       "6          270000.0  Commercial associate  Secondary / secondary special   \n",
       "7          283500.0             Pensioner               Higher education   \n",
       "8          283500.0             Pensioner               Higher education   \n",
       "9          283500.0             Pensioner               Higher education   \n",
       "\n",
       "     NAME_FAMILY_STATUS  NAME_HOUSING_TYPE  DAYS_BIRTH  DAYS_EMPLOYED  \\\n",
       "0        Civil marriage   Rented apartment      -12005          -4542   \n",
       "1        Civil marriage   Rented apartment      -12005          -4542   \n",
       "2               Married  House / apartment      -21474          -1134   \n",
       "3  Single / not married  House / apartment      -19110          -3051   \n",
       "4  Single / not married  House / apartment      -19110          -3051   \n",
       "5  Single / not married  House / apartment      -19110          -3051   \n",
       "6  Single / not married  House / apartment      -19110          -3051   \n",
       "7             Separated  House / apartment      -22464         365243   \n",
       "8             Separated  House / apartment      -22464         365243   \n",
       "9             Separated  House / apartment      -22464         365243   \n",
       "\n",
       "   FLAG_MOBIL  FLAG_WORK_PHONE  FLAG_PHONE  FLAG_EMAIL OCCUPATION_TYPE  \\\n",
       "0           1                1           0           0             NaN   \n",
       "1           1                1           0           0             NaN   \n",
       "2           1                0           0           0  Security staff   \n",
       "3           1                0           1           1     Sales staff   \n",
       "4           1                0           1           1     Sales staff   \n",
       "5           1                0           1           1     Sales staff   \n",
       "6           1                0           1           1     Sales staff   \n",
       "7           1                0           0           0             NaN   \n",
       "8           1                0           0           0             NaN   \n",
       "9           1                0           0           0             NaN   \n",
       "\n",
       "   CNT_FAM_MEMBERS  \n",
       "0              2.0  \n",
       "1              2.0  \n",
       "2              2.0  \n",
       "3              1.0  \n",
       "4              1.0  \n",
       "5              1.0  \n",
       "6              1.0  \n",
       "7              1.0  \n",
       "8              1.0  \n",
       "9              1.0  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "application_record_df.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3650a718-abb0-4dc7-960e-4a79c37030c3",
   "metadata": {},
   "source": [
    "### 数据字典"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "513e0b5a-f805-4981-8a0a-6da9a60f72ff",
   "metadata": {},
   "outputs": [],
   "source": [
    "application_record_dict = {'ID': '客户号', \n",
    " 'CODE_GENDER': '性别', \n",
    " 'FLAG_OWN_CAR': '是否有车', \n",
    " 'FLAG_OWN_REALTY': '是否有房产', \n",
    " 'CNT_CHILDREN': '孩子个数', \n",
    " 'AMT_INCOME_TOTAL': '年收入', \n",
    " 'NAME_INCOME_TYPE': '收入类别', \n",
    " 'NAME_EDUCATION_TYPE': '教育程度', \n",
    " 'NAME_FAMILY_STATUS': '婚姻状态', \n",
    " 'NAME_HOUSING_TYPE': '居住方式', \n",
    " 'DAYS_BIRTH': '生日', # 0为当日，日期向前计算，比如-28为28天前出生\n",
    " 'DAYS_EMPLOYED': '开始工作日期', # '0为当日，日期向前计算，比如-28为28天前开始工作\n",
    " 'FLAG_MOBIL': '是否有手机', \n",
    " 'FLAG_WORK_PHONE': '是否有工作电话', \n",
    " 'FLAG_PHONE': '是否有电话', \n",
    " 'FLAG_EMAIL': '是否有 email', \n",
    " 'OCCUPATION_TYPE': '职业', \n",
    " 'CNT_FAM_MEMBERS': '家庭人数'\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "784f23b5-4086-4f4e-88d5-63f863b0b438",
   "metadata": {},
   "outputs": [],
   "source": [
    "credit_record_dict = {\n",
    " 'ID': '客户号', \n",
    " 'MONTHS_BALANCE': '记录月份',  # 已抽取数据月份为起点，向前倒退，0为当月，-1为前一个月，依次类推\n",
    " 'STATUS': '状态',  # 0:1-29 天逾期 1:30-59 天逾期 2:60-89 天逾期 3:90-119 天逾期 4:120-149 天逾期 5:150天以上逾期或坏账、核销 C: 当月已还清 X: 当月无借款\n",
    "}"
   ]
  },
  {
   "cell_type": "raw",
   "id": "5705595d-2ed6-4c96-90bd-3131007eecea",
   "metadata": {},
   "source": [
    "credit_record_df = credit_record_df.rename(columns=credit_record_dict)\n",
    "application_record_df = application_record_df.rename(columns=application_record_dict)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "91b0e7a9-c767-4395-939c-caab519c27c2",
   "metadata": {},
   "source": [
    "### 数据类型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "ed58e1bd-8e07-4f41-b0ed-ecdfb5f8169f",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ID [5001711 5001712 5001713 ... 5150484 5150485 5150487]\n",
      "MONTHS_BALANCE [  0  -1  -2  -3  -4  -5  -6  -7  -8  -9 -10 -11 -12 -13 -14 -15 -16 -17\n",
      " -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35\n",
      " -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53\n",
      " -54 -55 -56 -57 -58 -59 -60]\n",
      "STATUS ['X' '0' 'C' '1' '2' '3' '4' '5']\n"
     ]
    }
   ],
   "source": [
    "for i in credit_record_df.columns:\n",
    "    print(i, credit_record_df[i].unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "6b52472e-cdee-4e4b-8bd0-0389ea7aa478",
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ID [5008804 5008805 5008806 ... 6841878 6842765 6842885]\n",
      "CODE_GENDER ['M' 'F']\n",
      "FLAG_OWN_CAR ['Y' 'N']\n",
      "FLAG_OWN_REALTY ['Y' 'N']\n",
      "CNT_CHILDREN [ 0  1  3  2  4  5 14 19  7  9 12  6]\n",
      "AMT_INCOME_TOTAL [ 427500.    112500.    270000.    283500.    135000.    130500.\n",
      "  157500.    405000.    211500.    360000.    126000.    315000.\n",
      "  247500.    297000.    225000.    166500.    216000.    255150.\n",
      "  148500.    202500.     94500.    450000.    180000.     90000.\n",
      "  765000.    382500.    144000.    229500.    292500.     74250.\n",
      "   40500.    337500.    193500.    267750.    139500.     67500.\n",
      "  252000.    900000.    115290.    279000.     76500.    234000.\n",
      "   81000.    108000.     99000.    198000.     45000.    238500.\n",
      "  117000.    153000.   1350000.    445500.    495000.     85500.\n",
      "  306000.    562500.    189000.    328500.    310500.    540000.\n",
      "  171000.    675000.    121500.     72000.     65250.    184500.\n",
      "  103500.    162000.    165150.     54000.    243000.    256500.\n",
      "   33300.    697500.    101250.     58500.    110250.    472500.\n",
      "  196650.    630000.    432000.    257625.    143100.    207000.\n",
      "  288000.    131400.    720000.    261000.     99900.     38250.\n",
      "  175500.     49500.     83250.    119250.     63000.    274500.\n",
      "   90900.    220500.     47250.    585000.    139050.     33750.\n",
      "  145350.    173250.    531000.    387000.   1125000.     36000.\n",
      "  179100.    206100.    265500.    118350.    123750.    116653.5\n",
      "  133650.    324000.    351000.    441000.    227250.     51750.\n",
      "  517500.    396000.    810000.    178650.    165600.     69750.\n",
      "   46948.5   616500.    378000.     89550.    234135.     42300.\n",
      "   74061.    175950.    168750.    215100.    391500.    177012.\n",
      "  364500.    661500.    240750.    333000.    342000.    167400.\n",
      "   50850.    141750.    176400.     30150.    155250.    414000.\n",
      "   52650.    115200.     67050.    120150.    373500.    146250.\n",
      "  213750.    121900.5   231750.    346500.    191250.    132372.\n",
      "  159750.    132750.     91530.     97731.    170302.5   265581.\n",
      "   73575.    184135.5   160200.    191700.    253800.     56700.\n",
      "  369000.    176175.    134419.5   190399.5   716323.5    31500.\n",
      "   57150.     78750.    236250.    208350.     38700.    222750.\n",
      "   72900.     56250.     62653.5   113400.     92250.    607500.\n",
      "  215550.     44550.    161100.    122400.     60376.5   254700.\n",
      "  787500.    140400.    185400.     31950.    129150.    612000.\n",
      "   47790.     69372.    134995.5   177750.    301500.    594000.\n",
      "  164250.     60750.     45900.    171261.    128542.5   178200.\n",
      "   73350.    124200.     82350.     38025.    360450.     39600.\n",
      "  634500.    459000.     87750.    945000.    463500.    742500.\n",
      "  151200.    560250.     89100.    204750.     36900.    187650.\n",
      "   32400.    147150.    119700.     27000.    990000.     61875.\n",
      "  355500.     79650.     37800.    140850.    195750.     29250.\n",
      "  423000.    179271.     87448.5   326250.     31531.5   105750.\n",
      "  468000.     97650.    114750.    418500.     95850.    652500.\n",
      " 1575000.     74700.     62100.    494100.    249750.    150750.\n",
      "  116100.    164133.     41400.    128250.     88650.    351891.\n",
      "   70650.     48150.    134100.     42750.    173700.    167692.5\n",
      "  119457.    215325.    426019.5   144450.   3825000.    217300.5\n",
      "  115650.    101700.    504000.    319500.    353250.    127102.5\n",
      "  209250.    122850.    198315.     30600.    203197.5    44100.\n",
      "   92700.    174150.    170100.     75150.    318906.    341325.\n",
      "   81900.    110187.    153900.     63900.    104998.5   127800.\n",
      "  156141.    131913.    576000.     81373.5    88200.    125730.\n",
      "  203400.     59400.    111150.    105552.   1035000.    128700.\n",
      "  237600.     46350.    356625.    143248.5   155902.5   400500.\n",
      "   51300.    263700.     55350.    109800.    371925.    246600.\n",
      "  106200.    173160.    210150.    180598.5   183825.     91008.\n",
      "   80325.    221247.    137700.    160294.5    27900.     40950.\n",
      "  126450.    205200.    169200.    486000.     83700.    837000.\n",
      "  181696.5   149796.    120784.5   513000.     46012.5   245896.02\n",
      "   90712.62  336825.    107100.    173520.    126468.    142438.5\n",
      "  144360.    352350.     96750.    111600.    113850.    105300.\n",
      "  339750.    294300.    116658.     69300.    149850.    125100.\n",
      "  196200.    108765.    170550.   1102500.     35550.    245250.\n",
      "  117985.5   261900.     62550.     79200.    217908.    103149.\n",
      "   74038.5    37350.     98100.    235849.5   166950.    190350.\n",
      "   81450.    747000.    194400.    436500.    284850.    170910.\n",
      "  210375.    315157.5   855000.     82948.5    43200.    190800.\n",
      "   58950.    151425.     52200.     47304.    127350.    139455.\n",
      "   34200.     43425.    187497.    130050.    283185.    165735.\n",
      "  415813.5   153639.    159300.    751500.    241650.    187200.\n",
      "  285750.    158400.    153495.     85050.    223200.    104611.5\n",
      "   83479.5   153747.    183150.     86400.    105120.    727870.5\n",
      "  454500.     32625.    131494.5   160560.    133200.    290250.\n",
      "  161554.5   105975.    180234.    210600.     76050.     93010.5\n",
      "  174442.5   100350.     61200.     41850.    218700.     51430.5\n",
      "   68400.     77850.    477000.    167850.     84150.     48600.\n",
      "  117324.    409500.     64350.    877500.    237150.    185985.\n",
      "  219150.    105610.5   192600.     91800.    102150.    118800.\n",
      "  179550.    160470.    114916.5   167242.5   320850.    186750.\n",
      "  120753.    256405.5   177300.    194850.    117765.    303750.\n",
      "  337050.    193950.    308250.   1080000.   3950059.5   108450.\n",
      "  135256.5   171900.    434250.     66600.     50085.     54900.\n",
      "   52425.    102600.     54450.     98419.5    32139.    123916.5\n",
      "  378900.    371392.2    90612.   1215000.    555327.    178065.\n",
      "   95400.    129748.5   125032.5   258750.     74475.     80550.\n",
      "  164700.    100800.    200250.     78300.    155700.     84600.\n",
      "  121950.    357750.     66150.     43884.    264901.5    71100.\n",
      "  203998.5   141408.    325800.     85023.    126900.    146700.\n",
      "   57600.     80100.    110700.    182250.    388350.    262800.\n",
      "  293850.    147600.     54027.     74659.5    73368.    156150.\n",
      "  112950.    348750.    186480.    394353.    170937.     74025.\n",
      "   93150.    106650.    567000.    163260.     60300.    313650.\n",
      "   78691.5    77719.5   107397.    225900.    218250.   3375000.\n",
      "   43969.5   280498.5   359100.    175050.    733500.     55800.\n",
      "  338746.5    69246.    141016.5    72450.    102024.     36679.5\n",
      "   50400.    204025.5   936000.    160425.   1260000.    124650.\n",
      "  144900.    224995.5   349875.     68481.    243675.     41211.\n",
      "   70209.    442350.    103815.     91350.     47700.    621000.\n",
      "  270540.    679500.    294750.    143932.5   129060.     33214.5\n",
      "   89253.    189900.     68886.    499500.    217800.    262503.\n",
      "  949500.    433350.    337545.    123300.    256050.    138150.\n",
      "  358200.   1170000.    163800.     56740.5   571500.     68004.\n",
      " 6750000.    197550.   1890000.   2214117.    158040.     85761.\n",
      "   28800.   2025000.    230400.    280941.3   133461.     28723.5\n",
      "  144904.5   103950.    311850.     99252.    104850.    117450.\n",
      "  180900.    320400.    247891.5   117949.5    80397.     68850.\n",
      "  161307.    711000.    191142.     87007.5    87925.5    43650.\n",
      "  383400.     99238.5   294448.5   213601.5   182646.    161550.\n",
      "  702000.    161149.5    90288.    137250.     58050.    142200.\n",
      "   40306.5   118975.5    83128.5    82498.5   193684.5   132075.\n",
      "  100629.     87300.     80761.5    63850.5    26100.    272250.\n",
      "  427050.    107550.    108900.    312750.     70200.     63139.5\n",
      "  141867.    196546.5   142650.     39150.    162900.    160650.\n",
      "  151641.    240300.     92385.    250200.    221400.    251100.\n",
      "  351900.   4500000.     81436.5   141606.    276750.     34875.\n",
      " 1305000.    124978.5    78156.     87444.    198256.5   684000.\n",
      "  362911.5   107752.5    99526.5   199273.5   104382.    152478.\n",
      "   49549.5   103230.    227997.    148950.     51691.5   481500.\n",
      "  313200.     65700.    217350.    312300.    660397.5    93550.5\n",
      "  248400.    300600.    343350.     69642.    300379.5   242100.\n",
      "  117900.    305779.5   403650.    130572.     56025.     98550.\n",
      "   67950.    174807.    180117.     71748.    133564.5    33165.\n",
      "  157635.    173088.    160780.5    67023.    115744.5    61650.\n",
      "  522000.    182524.5    97200.    151276.5   123525.    193792.5\n",
      "   94050.    235350.     82800.    300150.    438750.    223425.\n",
      "   66330.    234900.    440100.    155403.    139986.    188550.\n",
      " 1001826.    443250.    251212.5    93942.    174312.    107251.65\n",
      "  285043.5   167490.    191475.     41989.5   106434.     41314.5\n",
      "   94027.5   729000.     46800.    184869.    211050.     47353.5\n",
      "  319275.    241200.    109603.35   65520.     77998.5   163350.\n",
      "   29133.    112050.    443700.    128646.     89995.5   116550.\n",
      "  886500.     45450.     41940.    460417.5   201150.    265950.\n",
      "   96075.     75600.    346050.    706500.     82624.5  3150000.\n",
      "  366750.    107437.5    64800.     82260.    289800.     37710.\n",
      "   71550.    109341.    247621.5   157050.    307350.    273150.\n",
      "  105840.     94950.    140814.    343800.    365850.    256950.\n",
      "   83322.    127498.5   828000.     45346.5    73800.    286200.\n",
      "  129600.    109899.     53140.5    83304.     37008.    580500.\n",
      "  143550.   1800000.     93991.5    78664.5    36828.    403200.\n",
      "  305550.    143739.    876276.    402750.     77400.    356850.\n",
      "   76842.     49050.    445050.     32967.     84505.5    28350.\n",
      "  321750.    100300.5   558000.    324805.5   267529.5    71172.\n",
      "  374998.5    73624.5   221850.    171036.    133290.     58725.\n",
      "   82534.5   355050.    103000.5   164430.    225765.     91188.\n",
      "  143073.     54994.5 ]\n",
      "NAME_INCOME_TYPE ['Working' 'Commercial associate' 'Pensioner' 'State servant' 'Student']\n",
      "NAME_EDUCATION_TYPE ['Higher education' 'Secondary / secondary special' 'Incomplete higher'\n",
      " 'Lower secondary' 'Academic degree']\n",
      "NAME_FAMILY_STATUS ['Civil marriage' 'Married' 'Single / not married' 'Separated' 'Widow']\n",
      "NAME_HOUSING_TYPE ['Rented apartment' 'House / apartment' 'Municipal apartment'\n",
      " 'With parents' 'Co-op apartment' 'Office apartment']\n",
      "DAYS_BIRTH [-12005 -21474 -19110 ...  -8169  -9738 -22257]\n",
      "DAYS_EMPLOYED [-4542 -1134 -3051 ... -8300 -9020 -4884]\n",
      "FLAG_MOBIL [1]\n",
      "FLAG_WORK_PHONE [1 0]\n",
      "FLAG_PHONE [0 1]\n",
      "FLAG_EMAIL [0 1]\n",
      "OCCUPATION_TYPE [nan 'Security staff' 'Sales staff' 'Accountants' 'Laborers' 'Managers'\n",
      " 'Drivers' 'Core staff' 'High skill tech staff' 'Cleaning staff'\n",
      " 'Private service staff' 'Cooking staff' 'Low-skill Laborers'\n",
      " 'Medicine staff' 'Secretaries' 'Waiters/barmen staff' 'HR staff'\n",
      " 'Realty agents' 'IT staff']\n",
      "CNT_FAM_MEMBERS [ 2.  1.  5.  3.  4.  6. 15.  7. 20.  9. 11. 14.  8.]\n"
     ]
    }
   ],
   "source": [
    "for i in application_record_df.columns:\n",
    "    print(i, application_record_df[i].unique())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "156fd7ce-cc70-48df-b3d7-e0ea54eb49ab",
   "metadata": {},
   "source": [
    "### 数据质量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6799dc76-f625-4115-98d5-4193a5c9a750",
   "metadata": {},
   "source": [
    "- 数据安全：脱敏\n",
    "- 数据主键：质量不好\n",
    "- 数据统一：FLAG有的Y/N有的0/1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2bb44a8f-fe14-4c59-a860-dcda27b27163",
   "metadata": {
    "tags": []
   },
   "source": [
    "#### 检验重复和覆盖度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "899e1d50-375d-449d-9189-f2ea8dde8287",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((1048575, 3), (45985,))"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_record_df.shape, credit_record_df['ID'].unique().shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "d594f64a-81fb-4f7e-824b-b1b7f6ba4579",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((438557, 18), (438510,))"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "application_record_df.shape, application_record_df['ID'].unique().shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "21e089a2-3744-4177-88b4-ca253065f625",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "36457"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(set(credit_record_df['ID']).intersection(set(application_record_df['ID'])))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "7d8b6e19-b986-4526-90aa-bec91f595691",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7928020006523866"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 覆盖度\n",
    "36457 / 45985"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "82e5c1dd-420d-4f86-9e36-e720e721b50a",
   "metadata": {
    "tags": []
   },
   "source": [
    "## Pandas操作"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a139ee56-65a0-4629-8b55-0937d29491ec",
   "metadata": {
    "tags": []
   },
   "source": [
    "### 构造MOB"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "b33b624f-5270-486e-9294-8c5f71a6adb7",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "ff69e3a5-3389-4a61-b305-55cf085c0da0",
   "metadata": {},
   "outputs": [],
   "source": [
    "# There are two tables, which are connected by ID.\n",
    "dataset_path = r'D:\\固态硬盘\\B站\\T11 数据库高级查询\\dataset'\n",
    "# 用户行为\n",
    "credit_record_df = pd.read_csv(os.path.join(dataset_path, 'credit_record.csv'))\n",
    "# 申请人信息\n",
    "application_record_df = pd.read_csv(os.path.join(dataset_path, 'application_record.csv'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "008c8612-b80c-43e5-82e2-a583a07fb109",
   "metadata": {},
   "source": [
    "#### 分组聚合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "94b2bcea-6b41-4cf3-9ca1-61f904982502",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>0</td>\n",
       "      <td>X</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001712</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048570</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-25</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048571</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-26</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048572</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-27</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048573</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-28</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048574</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1048575 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              ID  MONTHS_BALANCE STATUS\n",
       "0        5001711               0      X\n",
       "1        5001711              -1      0\n",
       "2        5001711              -2      0\n",
       "3        5001711              -3      0\n",
       "4        5001712               0      C\n",
       "...          ...             ...    ...\n",
       "1048570  5150487             -25      C\n",
       "1048571  5150487             -26      C\n",
       "1048572  5150487             -27      C\n",
       "1048573  5150487             -28      C\n",
       "1048574  5150487             -29      C\n",
       "\n",
       "[1048575 rows x 3 columns]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_record_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "cd13046c-b725-49a3-bda9-e3e4d2c48f90",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<pandas.core.groupby.generic.DataFrameGroupBy object at 0x00000170E71DB6D0>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_grouped_df = credit_record_df.groupby('ID')\n",
    "credit_grouped_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "b7fce7c7-82ce-450f-92c0-3dabeea7128d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 获取每个账单的最大、最小月数，从而计算距今多久了\n",
    "credit_pivot_df = pd.DataFrame()\n",
    "credit_pivot_df['MIN_MONTH'] = credit_grouped_df['MONTHS_BALANCE'].min()\n",
    "credit_pivot_df['MAX_MONTH'] = credit_grouped_df['MONTHS_BALANCE'].max()\n",
    "credit_pivot_df['PERIODS'] = credit_pivot_df['MAX_MONTH'] - credit_pivot_df['MIN_MONTH']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "3c69523e-5f1d-42dc-83a2-5aada4e7214f",
   "metadata": {},
   "outputs": [],
   "source": [
    "credit_pivot_df = credit_pivot_df.reset_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "05a9cab2-14b7-4fe4-8849-bc5a07385acc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001712</td>\n",
       "      <td>-18</td>\n",
       "      <td>0</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001714</td>\n",
       "      <td>-14</td>\n",
       "      <td>0</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001715</td>\n",
       "      <td>-59</td>\n",
       "      <td>0</td>\n",
       "      <td>59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45980</th>\n",
       "      <td>5150482</td>\n",
       "      <td>-28</td>\n",
       "      <td>-11</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45981</th>\n",
       "      <td>5150483</td>\n",
       "      <td>-17</td>\n",
       "      <td>0</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45982</th>\n",
       "      <td>5150484</td>\n",
       "      <td>-12</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45983</th>\n",
       "      <td>5150485</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45984</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>45985 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            ID  MIN_MONTH  MAX_MONTH  PERIODS\n",
       "0      5001711         -3          0        3\n",
       "1      5001712        -18          0       18\n",
       "2      5001713        -21          0       21\n",
       "3      5001714        -14          0       14\n",
       "4      5001715        -59          0       59\n",
       "...        ...        ...        ...      ...\n",
       "45980  5150482        -28        -11       17\n",
       "45981  5150483        -17          0       17\n",
       "45982  5150484        -12          0       12\n",
       "45983  5150485         -1          0        1\n",
       "45984  5150487        -29          0       29\n",
       "\n",
       "[45985 rows x 4 columns]"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_pivot_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bee06622-5663-4b14-8b89-a5e8deb033e0",
   "metadata": {},
   "source": [
    "#### 数据合并"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "d504b2a2-8ea0-4fa3-a06e-70cce7a9fab7",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 给原始数据添加上我们计算出来的3列\n",
    "credit_join_df = pd.merge(credit_record_df, credit_pivot_df, on = 'ID', how = 'left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "c34e945a-7752-4008-ba7e-d76ce6d23ccf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>0</td>\n",
       "      <td>X</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-2</td>\n",
       "      <td>0</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001712</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "      <td>-18</td>\n",
       "      <td>0</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048570</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-25</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048571</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-26</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048572</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-27</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048573</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-28</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048574</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1048575 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS\n",
       "0        5001711               0      X         -3          0        3\n",
       "1        5001711              -1      0         -3          0        3\n",
       "2        5001711              -2      0         -3          0        3\n",
       "3        5001711              -3      0         -3          0        3\n",
       "4        5001712               0      C        -18          0       18\n",
       "...          ...             ...    ...        ...        ...      ...\n",
       "1048570  5150487             -25      C        -29          0       29\n",
       "1048571  5150487             -26      C        -29          0       29\n",
       "1048572  5150487             -27      C        -29          0       29\n",
       "1048573  5150487             -28      C        -29          0       29\n",
       "1048574  5150487             -29      C        -29          0       29\n",
       "\n",
       "[1048575 rows x 6 columns]"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_join_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f6fe45b7-8af1-48b3-9069-cda2ef6e2460",
   "metadata": {},
   "source": [
    "#### 窗口期过滤"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "dc2d8ee5-0120-492e-9e1f-84ab0661cb96",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     0.000381\n",
       "1     0.002075\n",
       "2     0.003327\n",
       "3     0.005108\n",
       "4     0.005851\n",
       "        ...   \n",
       "56    0.015275\n",
       "57    0.013165\n",
       "58    0.013617\n",
       "59    0.013390\n",
       "60    0.012915\n",
       "Name: PERIODS, Length: 61, dtype: float64"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "period_stat_se = credit_join_df['PERIODS'].value_counts().sort_index() / credit_join_df.shape[0]\n",
    "period_stat_se"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "cca16676-45c1-4f53-9fee-85373cdd756a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.2606327635123859"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "period_stat_se.head(21).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "9bc94181-a7ad-43f0-8005-cc7b98c9ee8f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     0.008677\n",
       "1     0.023660\n",
       "2     0.025291\n",
       "3     0.029118\n",
       "4     0.026683\n",
       "        ...   \n",
       "56    0.006111\n",
       "57    0.005176\n",
       "58    0.005263\n",
       "59    0.005089\n",
       "60    0.004828\n",
       "Name: PERIODS, Length: 61, dtype: float64"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_pivot_df['PERIODS'].value_counts().sort_index() / credit_pivot_df.shape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "8558d6ac-02ef-4188-b20a-57e274bf0877",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5449820593671849"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(credit_pivot_df['PERIODS'].value_counts().sort_index() / credit_pivot_df.shape[0]).head(21).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "bc4ed014-17ee-4cd7-990c-fd33eb94314b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 窗口期太小的不参与分析\n",
    "credit_filter_df = credit_join_df[credit_join_df['PERIODS'] > 20]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb07b4d0-7969-48e7-b846-a1cb0bc7080d",
   "metadata": {},
   "source": [
    "#### 逾期调整"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ef429a47-4ade-46a2-a090-687cfd2c2781",
   "metadata": {},
   "source": [
    "只看逾期超过60天的才算逾期"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "5c937b09-dbb5-4f34-88da-7ac12b817876",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\lyf\\AppData\\Local\\Temp/ipykernel_14224/1944281633.py:1: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  credit_filter_df['OVERDUE'] = credit_filter_df['STATUS'].isin(['2', '3', '4', '5']).astype(int)\n"
     ]
    }
   ],
   "source": [
    "credit_filter_df['OVERDUE'] = credit_filter_df['STATUS'].isin(['2', '3', '4', '5']).astype(int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "1fc842c9-4781-426f-b907-88c8b0857c2d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    772745\n",
       "1      2537\n",
       "Name: OVERDUE, dtype: int64"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_filter_df['OVERDUE'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "aa26a951-8f11-42f8-ad5b-8246802cdd62",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "      <th>OVERDUE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>8911</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-46</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8912</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-47</td>\n",
       "      <td>3</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8913</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-48</td>\n",
       "      <td>3</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8914</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-49</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8915</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-50</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1041045</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-21</td>\n",
       "      <td>4</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1041046</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-22</td>\n",
       "      <td>3</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1041047</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-23</td>\n",
       "      <td>2</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1041048</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-24</td>\n",
       "      <td>2</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1046235</th>\n",
       "      <td>5150238</td>\n",
       "      <td>-5</td>\n",
       "      <td>2</td>\n",
       "      <td>-53</td>\n",
       "      <td>0</td>\n",
       "      <td>53</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2537 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS  \\\n",
       "8911     5002126             -46      2        -55          0       55   \n",
       "8912     5002126             -47      3        -55          0       55   \n",
       "8913     5002126             -48      3        -55          0       55   \n",
       "8914     5002126             -49      2        -55          0       55   \n",
       "8915     5002126             -50      2        -55          0       55   \n",
       "...          ...             ...    ...        ...        ...      ...   \n",
       "1041045  5149838             -21      4        -32          0       32   \n",
       "1041046  5149838             -22      3        -32          0       32   \n",
       "1041047  5149838             -23      2        -32          0       32   \n",
       "1041048  5149838             -24      2        -32          0       32   \n",
       "1046235  5150238              -5      2        -53          0       53   \n",
       "\n",
       "         OVERDUE  \n",
       "8911           1  \n",
       "8912           1  \n",
       "8913           1  \n",
       "8914           1  \n",
       "8915           1  \n",
       "...          ...  \n",
       "1041045        1  \n",
       "1041046        1  \n",
       "1041047        1  \n",
       "1041048        1  \n",
       "1046235        1  \n",
       "\n",
       "[2537 rows x 7 columns]"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_filter_df[credit_filter_df['OVERDUE']==1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "7c0e3f01-7545-45ff-860a-5ecd04d8194d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "      <th>OVERDUE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>8920</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8919</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8918</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-53</td>\n",
       "      <td>X</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8917</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-52</td>\n",
       "      <td>X</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8916</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-51</td>\n",
       "      <td>1</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8915</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-50</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8914</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-49</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8913</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-48</td>\n",
       "      <td>3</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8912</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-47</td>\n",
       "      <td>3</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8911</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-46</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8910</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-45</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8909</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-44</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8908</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-43</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8907</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-42</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8906</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-41</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8905</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-40</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8904</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-39</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8903</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-38</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8902</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-37</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8901</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-36</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8900</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-35</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8899</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-34</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8898</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-33</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8897</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-32</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8896</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-31</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8895</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-30</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8894</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-29</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8893</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-28</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8892</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-27</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8891</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-26</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8890</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-25</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8889</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-24</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8888</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-23</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8887</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-22</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8886</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-21</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8885</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-20</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8884</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-19</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8883</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-18</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8882</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-17</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8881</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-16</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8880</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-15</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8879</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-14</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8878</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-13</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8877</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-12</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8876</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-11</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8875</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-10</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8874</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-9</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8873</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-8</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8872</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-7</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8871</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-6</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8870</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-5</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8869</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-4</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8868</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-3</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8867</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-2</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8866</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-1</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8865</th>\n",
       "      <td>5002126</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS  OVERDUE\n",
       "8920  5002126             -55      0        -55          0       55        0\n",
       "8919  5002126             -54      0        -55          0       55        0\n",
       "8918  5002126             -53      X        -55          0       55        0\n",
       "8917  5002126             -52      X        -55          0       55        0\n",
       "8916  5002126             -51      1        -55          0       55        0\n",
       "8915  5002126             -50      2        -55          0       55        1\n",
       "8914  5002126             -49      2        -55          0       55        1\n",
       "8913  5002126             -48      3        -55          0       55        1\n",
       "8912  5002126             -47      3        -55          0       55        1\n",
       "8911  5002126             -46      2        -55          0       55        1\n",
       "8910  5002126             -45      C        -55          0       55        0\n",
       "8909  5002126             -44      C        -55          0       55        0\n",
       "8908  5002126             -43      C        -55          0       55        0\n",
       "8907  5002126             -42      C        -55          0       55        0\n",
       "8906  5002126             -41      C        -55          0       55        0\n",
       "8905  5002126             -40      C        -55          0       55        0\n",
       "8904  5002126             -39      C        -55          0       55        0\n",
       "8903  5002126             -38      C        -55          0       55        0\n",
       "8902  5002126             -37      C        -55          0       55        0\n",
       "8901  5002126             -36      C        -55          0       55        0\n",
       "8900  5002126             -35      C        -55          0       55        0\n",
       "8899  5002126             -34      C        -55          0       55        0\n",
       "8898  5002126             -33      C        -55          0       55        0\n",
       "8897  5002126             -32      C        -55          0       55        0\n",
       "8896  5002126             -31      C        -55          0       55        0\n",
       "8895  5002126             -30      C        -55          0       55        0\n",
       "8894  5002126             -29      C        -55          0       55        0\n",
       "8893  5002126             -28      C        -55          0       55        0\n",
       "8892  5002126             -27      C        -55          0       55        0\n",
       "8891  5002126             -26      C        -55          0       55        0\n",
       "8890  5002126             -25      C        -55          0       55        0\n",
       "8889  5002126             -24      C        -55          0       55        0\n",
       "8888  5002126             -23      C        -55          0       55        0\n",
       "8887  5002126             -22      C        -55          0       55        0\n",
       "8886  5002126             -21      C        -55          0       55        0\n",
       "8885  5002126             -20      C        -55          0       55        0\n",
       "8884  5002126             -19      C        -55          0       55        0\n",
       "8883  5002126             -18      C        -55          0       55        0\n",
       "8882  5002126             -17      C        -55          0       55        0\n",
       "8881  5002126             -16      C        -55          0       55        0\n",
       "8880  5002126             -15      C        -55          0       55        0\n",
       "8879  5002126             -14      C        -55          0       55        0\n",
       "8878  5002126             -13      C        -55          0       55        0\n",
       "8877  5002126             -12      C        -55          0       55        0\n",
       "8876  5002126             -11      C        -55          0       55        0\n",
       "8875  5002126             -10      C        -55          0       55        0\n",
       "8874  5002126              -9      C        -55          0       55        0\n",
       "8873  5002126              -8      C        -55          0       55        0\n",
       "8872  5002126              -7      C        -55          0       55        0\n",
       "8871  5002126              -6      C        -55          0       55        0\n",
       "8870  5002126              -5      C        -55          0       55        0\n",
       "8869  5002126              -4      C        -55          0       55        0\n",
       "8868  5002126              -3      C        -55          0       55        0\n",
       "8867  5002126              -2      C        -55          0       55        0\n",
       "8866  5002126              -1      C        -55          0       55        0\n",
       "8865  5002126               0      C        -55          0       55        0"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_filter_df[credit_filter_df['ID']==5002126].sort_values(by='MONTHS_BALANCE', ascending=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e82cd086-6398-4b8e-9d35-a0b38e9005ab",
   "metadata": {},
   "source": [
    "#### MOB构造"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "e90ad6bf-30ef-406f-b6ec-7244638e5aaa",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\lyf\\AppData\\Local\\Temp/ipykernel_14224/3143873226.py:2: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  credit_filter_df['MOB'] = credit_filter_df['MONTHS_BALANCE'] - credit_filter_df['MIN_MONTH']\n"
     ]
    }
   ],
   "source": [
    "# 计算每个账单在不同月份是第几期，所以用其当前所在月-开始月\n",
    "credit_filter_df['MOB'] = credit_filter_df['MONTHS_BALANCE'] - credit_filter_df['MIN_MONTH']\n",
    "credit_filter_df = credit_filter_df.sort_values(by = ['ID','MOB'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "004fd999-4186-4398-9c69-7a08f0cdc866",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "      <th>OVERDUE</th>\n",
       "      <th>MOB</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-21</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-20</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-19</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-18</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-17</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048549</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-4</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048548</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-3</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048547</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-2</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048546</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-1</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048545</th>\n",
       "      <td>5150487</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>775282 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS  \\\n",
       "44       5001713             -21      X        -21          0       21   \n",
       "43       5001713             -20      X        -21          0       21   \n",
       "42       5001713             -19      X        -21          0       21   \n",
       "41       5001713             -18      X        -21          0       21   \n",
       "40       5001713             -17      X        -21          0       21   \n",
       "...          ...             ...    ...        ...        ...      ...   \n",
       "1048549  5150487              -4      C        -29          0       29   \n",
       "1048548  5150487              -3      C        -29          0       29   \n",
       "1048547  5150487              -2      C        -29          0       29   \n",
       "1048546  5150487              -1      C        -29          0       29   \n",
       "1048545  5150487               0      C        -29          0       29   \n",
       "\n",
       "         OVERDUE  MOB  \n",
       "44             0    0  \n",
       "43             0    1  \n",
       "42             0    2  \n",
       "41             0    3  \n",
       "40             0    4  \n",
       "...          ...  ...  \n",
       "1048549        0   25  \n",
       "1048548        0   26  \n",
       "1048547        0   27  \n",
       "1048546        0   28  \n",
       "1048545        0   29  \n",
       "\n",
       "[775282 rows x 8 columns]"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_filter_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "abb53b89-7305-4eac-b01d-589c54f042e5",
   "metadata": {},
   "source": [
    "### 构造vintage"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8fe7146b-6d38-47cb-a5ce-9284b217ea6c",
   "metadata": {},
   "source": [
    "#### 逾期和总数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "a7cb78cc-c785-4e49-8811-b95c5f47c604",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>LENDING_COUNT</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-60</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-59</td>\n",
       "      <td>406</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-58</td>\n",
       "      <td>440</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-57</td>\n",
       "      <td>400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-56</td>\n",
       "      <td>470</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>56</th>\n",
       "      <td>-4</td>\n",
       "      <td>874</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>-3</td>\n",
       "      <td>919</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>-2</td>\n",
       "      <td>771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>-1</td>\n",
       "      <td>686</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60</th>\n",
       "      <td>0</td>\n",
       "      <td>370</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>61 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    MIN_MONTH  LENDING_COUNT\n",
       "0         -60            415\n",
       "1         -59            406\n",
       "2         -58            440\n",
       "3         -57            400\n",
       "4         -56            470\n",
       "..        ...            ...\n",
       "56         -4            874\n",
       "57         -3            919\n",
       "58         -2            771\n",
       "59         -1            686\n",
       "60          0            370\n",
       "\n",
       "[61 rows x 2 columns]"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计每个月的新放贷款数量，应该看的是MIN_MONTH，这里要去重，所以用之前的pivot表\n",
    "denominator_df = credit_pivot_df.groupby(['MIN_MONTH']).agg({'ID': ['count']}) \n",
    "denominator_df.reset_index(inplace = True)\n",
    "denominator_df.columns = ['MIN_MONTH', 'LENDING_COUNT']\n",
    "denominator_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "04758ff4-8fb1-4122-b857-79c9f6da0c78",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MOB</th>\n",
       "      <th>OVERDUE_RATIO</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-60</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-60</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-60</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-60</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-60</td>\n",
       "      <td>4</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1655</th>\n",
       "      <td>-21</td>\n",
       "      <td>17</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1656</th>\n",
       "      <td>-21</td>\n",
       "      <td>18</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1657</th>\n",
       "      <td>-21</td>\n",
       "      <td>19</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1658</th>\n",
       "      <td>-21</td>\n",
       "      <td>20</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1659</th>\n",
       "      <td>-21</td>\n",
       "      <td>21</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1660 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      MIN_MONTH  MOB  OVERDUE_RATIO\n",
       "0           -60    0            NaN\n",
       "1           -60    1            NaN\n",
       "2           -60    2            NaN\n",
       "3           -60    3            NaN\n",
       "4           -60    4            NaN\n",
       "...         ...  ...            ...\n",
       "1655        -21   17            NaN\n",
       "1656        -21   18            NaN\n",
       "1657        -21   19            NaN\n",
       "1658        -21   20            NaN\n",
       "1659        -21   21            NaN\n",
       "\n",
       "[1660 rows x 3 columns]"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计 每个月 x 每个MOB 的贷款数量\n",
    "vintage_df = credit_filter_df.groupby(['MIN_MONTH','MOB']).agg({'ID': ['count']}) \n",
    "\n",
    "vintage_df = vintage_df.reset_index()\n",
    "vintage_df.columns = ['MIN_MONTH','MOB','OVERDUE_RATIO'] \n",
    "vintage_df['OVERDUE_RATIO'] = np.nan\n",
    "vintage_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "fb71d90e-ad64-4059-9e74-d00a44a5f8e2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>OVERDUE_RATIO</th>\n",
       "      <th>LENDING_COUNT</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MOB</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">-60</th>\n",
       "      <th>0</th>\n",
       "      <td>NaN</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NaN</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>NaN</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">-21</th>\n",
       "      <th>17</th>\n",
       "      <td>NaN</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>NaN</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>NaN</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>NaN</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>NaN</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1660 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "               OVERDUE_RATIO  LENDING_COUNT\n",
       "MIN_MONTH MOB                              \n",
       "-60       0              NaN            415\n",
       "          1              NaN            415\n",
       "          2              NaN            415\n",
       "          3              NaN            415\n",
       "          4              NaN            415\n",
       "...                      ...            ...\n",
       "-21       17             NaN            858\n",
       "          18             NaN            858\n",
       "          19             NaN            858\n",
       "          20             NaN            858\n",
       "          21             NaN            858\n",
       "\n",
       "[1660 rows x 2 columns]"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 合并，给每个MOB都增加了一列其对应月份的贷款数量\n",
    "# 但是注意\n",
    "vintage_df = pd.merge(vintage_df, denominator_df, on = ['MIN_MONTH'], how = 'left') \n",
    "vintage_df = vintage_df.set_index(['MIN_MONTH', 'MOB'])\n",
    "vintage_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6545994a-fdf4-43e5-9bf3-a23f503fb053",
   "metadata": {},
   "source": [
    "#### 去重加和"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "6c226154-7a00-47c2-bf97-e53d043cd292",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1个人可能在10个月前贷款，然后过4月逾期1次，还完了后，过2个月又逾期，所以会有两笔，要去重\n",
    "overdue_credit_df = credit_filter_df[credit_filter_df['OVERDUE'] == 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "a9804c0d-a6aa-4038-a95b-a5f3b4aa8294",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MIN_MONTH  MOB\n",
       "-60        5      1\n",
       "           7      2\n",
       "           9      1\n",
       "           11     1\n",
       "           12     1\n",
       "                 ..\n",
       "-21        10     1\n",
       "           11     2\n",
       "           12     1\n",
       "           13     1\n",
       "           17     1\n",
       "Name: ID, Length: 365, dtype: int64"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "overdue_credit_df = overdue_credit_df.sort_values(by=['ID', 'MOB']).drop_duplicates(subset=['ID'], keep='first')\n",
    "overdue_group_df = overdue_credit_df.groupby(['MIN_MONTH', 'MOB']).count()['ID']\n",
    "overdue_group_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 368,
   "id": "f7410294-e661-4123-8c7c-c6c163f6802c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "492"
      ]
     },
     "execution_count": 368,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "overdue_group_df.sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "id": "3fd2e8df-83bb-42c0-896d-b290ac68c62f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>-60</th>\n",
       "      <th>-59</th>\n",
       "      <th>-58</th>\n",
       "      <th>-57</th>\n",
       "      <th>-56</th>\n",
       "      <th>-55</th>\n",
       "      <th>-54</th>\n",
       "      <th>-53</th>\n",
       "      <th>-52</th>\n",
       "      <th>-51</th>\n",
       "      <th>...</th>\n",
       "      <th>-30</th>\n",
       "      <th>-29</th>\n",
       "      <th>-28</th>\n",
       "      <th>-27</th>\n",
       "      <th>-26</th>\n",
       "      <th>-25</th>\n",
       "      <th>-24</th>\n",
       "      <th>-23</th>\n",
       "      <th>-22</th>\n",
       "      <th>-21</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MOB</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>47 rows × 40 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "MIN_MONTH  -60  -59  -58  -57  -56  -55  -54  -53  -52  -51  ...  -30  -29  \\\n",
       "MOB                                                          ...             \n",
       "0          0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "1          0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  1.0  ...  0.0  0.0   \n",
       "2          0.0  0.0  0.0  0.0  2.0  1.0  0.0  0.0  4.0  0.0  ...  0.0  0.0   \n",
       "3          0.0  2.0  0.0  0.0  0.0  2.0  1.0  0.0  1.0  1.0  ...  1.0  1.0   \n",
       "4          0.0  0.0  0.0  1.0  2.0  3.0  1.0  1.0  0.0  0.0  ...  0.0  1.0   \n",
       "5          1.0  0.0  0.0  0.0  1.0  2.0  0.0  0.0  0.0  3.0  ...  1.0  2.0   \n",
       "6          0.0  1.0  0.0  0.0  0.0  3.0  1.0  2.0  2.0  1.0  ...  0.0  0.0   \n",
       "7          2.0  0.0  2.0  2.0  3.0  0.0  3.0  1.0  0.0  2.0  ...  3.0  1.0   \n",
       "8          0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  ...  0.0  1.0   \n",
       "9          1.0  2.0  0.0  0.0  2.0  1.0  2.0  1.0  1.0  1.0  ...  2.0  0.0   \n",
       "10         0.0  0.0  2.0  0.0  0.0  0.0  1.0  1.0  0.0  0.0  ...  0.0  2.0   \n",
       "11         1.0  3.0  1.0  0.0  2.0  0.0  0.0  0.0  0.0  2.0  ...  0.0  0.0   \n",
       "12         1.0  0.0  0.0  1.0  2.0  1.0  2.0  0.0  1.0  0.0  ...  1.0  0.0   \n",
       "13         1.0  0.0  0.0  3.0  2.0  3.0  2.0  0.0  0.0  0.0  ...  1.0  0.0   \n",
       "14         0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  ...  1.0  1.0   \n",
       "15         0.0  0.0  0.0  0.0  0.0  1.0  1.0  0.0  1.0  0.0  ...  0.0  0.0   \n",
       "16         0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "17         0.0  0.0  1.0  0.0  0.0  0.0  1.0  0.0  1.0  0.0  ...  0.0  0.0   \n",
       "18         0.0  1.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  ...  0.0  0.0   \n",
       "19         0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  1.0  0.0   \n",
       "20         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "21         1.0  1.0  2.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "22         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "23         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "24         0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "25         1.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  1.0  0.0   \n",
       "26         0.0  0.0  0.0  0.0  0.0  1.0  0.0  2.0  0.0  0.0  ...  0.0  0.0   \n",
       "27         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "28         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "29         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "30         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  ...  0.0  0.0   \n",
       "32         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "33         0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "34         0.0  0.0  1.0  0.0  0.0  0.0  0.0  2.0  0.0  0.0  ...  0.0  0.0   \n",
       "35         0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "37         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  ...  0.0  0.0   \n",
       "38         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "39         0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "41         0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "43         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "47         0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  ...  0.0  0.0   \n",
       "48         0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  ...  0.0  0.0   \n",
       "50         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "51         0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "54         0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "55         0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "58         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "\n",
       "MIN_MONTH  -28  -27  -26  -25  -24  -23  -22  -21  \n",
       "MOB                                                \n",
       "0          0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "1          0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "2          1.0  0.0  0.0  1.0  0.0  0.0  1.0  0.0  \n",
       "3          0.0  1.0  2.0  1.0  0.0  2.0  1.0  3.0  \n",
       "4          0.0  1.0  1.0  2.0  0.0  2.0  0.0  1.0  \n",
       "5          1.0  1.0  1.0  2.0  1.0  1.0  1.0  0.0  \n",
       "6          1.0  0.0  0.0  0.0  1.0  0.0  0.0  2.0  \n",
       "7          1.0  1.0  1.0  3.0  1.0  0.0  1.0  2.0  \n",
       "8          1.0  1.0  0.0  0.0  0.0  1.0  1.0  1.0  \n",
       "9          1.0  2.0  0.0  0.0  1.0  0.0  0.0  0.0  \n",
       "10         1.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  \n",
       "11         0.0  0.0  1.0  3.0  0.0  1.0  3.0  2.0  \n",
       "12         0.0  1.0  0.0  1.0  1.0  0.0  0.0  1.0  \n",
       "13         1.0  1.0  0.0  0.0  0.0  0.0  0.0  1.0  \n",
       "14         0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  \n",
       "15         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "16         0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  \n",
       "17         0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  \n",
       "18         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "19         0.0  2.0  0.0  0.0  0.0  0.0  1.0  0.0  \n",
       "20         1.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  \n",
       "21         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "22         0.0  1.0  0.0  1.0  0.0  0.0  0.0  0.0  \n",
       "23         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "24         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "25         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "26         0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "27         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "28         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "29         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "30         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "32         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "33         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "34         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "35         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "37         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "38         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "39         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "41         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "43         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "47         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "48         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "50         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "51         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "54         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "55         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "58         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "\n",
       "[47 rows x 40 columns]"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 逾期率是一个累加的概念，比如10个月前的放款，看其在第10月的违约率，肯定要把前几个月的违约个数加上去的\n",
    "# 但是如果一个人重复违约就不应该记录了\n",
    "# 会发现由于数据量少，在unstack的时候缺失了几个mob期，这个在cumsum也补不回来，如31 40 42等，需要手动添加\n",
    "unstack_overdue_df = overdue_group_df.unstack('MIN_MONTH').fillna(0)\n",
    "unstack_overdue_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "4aab02d2-2390-4af2-8952-582bdaf5d4b1",
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in range(0, 60):\n",
    "    if i not in unstack_overdue_df.index:\n",
    "        unstack_overdue_df.loc[i, :] = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "bfc2bff4-4698-44ff-9710-de521b406bcc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>-60</th>\n",
       "      <th>-59</th>\n",
       "      <th>-58</th>\n",
       "      <th>-57</th>\n",
       "      <th>-56</th>\n",
       "      <th>-55</th>\n",
       "      <th>-54</th>\n",
       "      <th>-53</th>\n",
       "      <th>-52</th>\n",
       "      <th>-51</th>\n",
       "      <th>...</th>\n",
       "      <th>-30</th>\n",
       "      <th>-29</th>\n",
       "      <th>-28</th>\n",
       "      <th>-27</th>\n",
       "      <th>-26</th>\n",
       "      <th>-25</th>\n",
       "      <th>-24</th>\n",
       "      <th>-23</th>\n",
       "      <th>-22</th>\n",
       "      <th>-21</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MOB</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>56</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>60 rows × 40 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "MIN_MONTH  -60  -59  -58  -57  -56  -55  -54  -53  -52  -51  ...  -30  -29  \\\n",
       "MOB                                                          ...             \n",
       "0          0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "1          0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  1.0  ...  0.0  0.0   \n",
       "2          0.0  0.0  0.0  0.0  2.0  1.0  0.0  0.0  4.0  0.0  ...  0.0  0.0   \n",
       "3          0.0  2.0  0.0  0.0  0.0  2.0  1.0  0.0  1.0  1.0  ...  1.0  1.0   \n",
       "4          0.0  0.0  0.0  1.0  2.0  3.0  1.0  1.0  0.0  0.0  ...  0.0  1.0   \n",
       "5          1.0  0.0  0.0  0.0  1.0  2.0  0.0  0.0  0.0  3.0  ...  1.0  2.0   \n",
       "6          0.0  1.0  0.0  0.0  0.0  3.0  1.0  2.0  2.0  1.0  ...  0.0  0.0   \n",
       "7          2.0  0.0  2.0  2.0  3.0  0.0  3.0  1.0  0.0  2.0  ...  3.0  1.0   \n",
       "8          0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  ...  0.0  1.0   \n",
       "9          1.0  2.0  0.0  0.0  2.0  1.0  2.0  1.0  1.0  1.0  ...  2.0  0.0   \n",
       "10         0.0  0.0  2.0  0.0  0.0  0.0  1.0  1.0  0.0  0.0  ...  0.0  2.0   \n",
       "11         1.0  3.0  1.0  0.0  2.0  0.0  0.0  0.0  0.0  2.0  ...  0.0  0.0   \n",
       "12         1.0  0.0  0.0  1.0  2.0  1.0  2.0  0.0  1.0  0.0  ...  1.0  0.0   \n",
       "13         1.0  0.0  0.0  3.0  2.0  3.0  2.0  0.0  0.0  0.0  ...  1.0  0.0   \n",
       "14         0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  ...  1.0  1.0   \n",
       "15         0.0  0.0  0.0  0.0  0.0  1.0  1.0  0.0  1.0  0.0  ...  0.0  0.0   \n",
       "16         0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "17         0.0  0.0  1.0  0.0  0.0  0.0  1.0  0.0  1.0  0.0  ...  0.0  0.0   \n",
       "18         0.0  1.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  ...  0.0  0.0   \n",
       "19         0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  1.0  0.0   \n",
       "20         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "21         1.0  1.0  2.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "22         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "23         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "24         0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "25         1.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  1.0  0.0   \n",
       "26         0.0  0.0  0.0  0.0  0.0  1.0  0.0  2.0  0.0  0.0  ...  0.0  0.0   \n",
       "27         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "28         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "29         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "30         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  ...  0.0  0.0   \n",
       "32         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "33         0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "34         0.0  0.0  1.0  0.0  0.0  0.0  0.0  2.0  0.0  0.0  ...  0.0  0.0   \n",
       "35         0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "37         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  ...  0.0  0.0   \n",
       "38         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "39         0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "41         0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "43         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "47         0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  ...  0.0  0.0   \n",
       "48         0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  ...  0.0  0.0   \n",
       "50         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "51         0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "54         0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "55         0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "58         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "31         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "36         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "40         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "42         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "44         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "45         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "46         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "49         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "52         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "53         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "56         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "57         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "59         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "\n",
       "MIN_MONTH  -28  -27  -26  -25  -24  -23  -22  -21  \n",
       "MOB                                                \n",
       "0          0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "1          0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "2          1.0  0.0  0.0  1.0  0.0  0.0  1.0  0.0  \n",
       "3          0.0  1.0  2.0  1.0  0.0  2.0  1.0  3.0  \n",
       "4          0.0  1.0  1.0  2.0  0.0  2.0  0.0  1.0  \n",
       "5          1.0  1.0  1.0  2.0  1.0  1.0  1.0  0.0  \n",
       "6          1.0  0.0  0.0  0.0  1.0  0.0  0.0  2.0  \n",
       "7          1.0  1.0  1.0  3.0  1.0  0.0  1.0  2.0  \n",
       "8          1.0  1.0  0.0  0.0  0.0  1.0  1.0  1.0  \n",
       "9          1.0  2.0  0.0  0.0  1.0  0.0  0.0  0.0  \n",
       "10         1.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  \n",
       "11         0.0  0.0  1.0  3.0  0.0  1.0  3.0  2.0  \n",
       "12         0.0  1.0  0.0  1.0  1.0  0.0  0.0  1.0  \n",
       "13         1.0  1.0  0.0  0.0  0.0  0.0  0.0  1.0  \n",
       "14         0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  \n",
       "15         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "16         0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  \n",
       "17         0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  \n",
       "18         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "19         0.0  2.0  0.0  0.0  0.0  0.0  1.0  0.0  \n",
       "20         1.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  \n",
       "21         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "22         0.0  1.0  0.0  1.0  0.0  0.0  0.0  0.0  \n",
       "23         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "24         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "25         1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "26         0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "27         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "28         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "29         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "30         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "32         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "33         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "34         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "35         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "37         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "38         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "39         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "41         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "43         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "47         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "48         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "50         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "51         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "54         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "55         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "58         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "31         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "36         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "40         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "42         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "44         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "45         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "46         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "49         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "52         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "53         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "56         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "57         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "59         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "\n",
       "[60 rows x 40 columns]"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "unstack_overdue_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "4a612bf9-b09e-4406-aee3-1414d21e006d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MIN_MONTH  MOB\n",
       "-60        0       0.0\n",
       "-59        0       0.0\n",
       "-58        0       0.0\n",
       "-57        0       0.0\n",
       "-56        0       0.0\n",
       "                  ... \n",
       "-25        59     15.0\n",
       "-24        59      6.0\n",
       "-23        59      7.0\n",
       "-22        59     10.0\n",
       "-21        59     15.0\n",
       "Length: 2400, dtype: float64"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cumsum_overdue_df = unstack_overdue_df.sort_index().cumsum().stack()\n",
    "\n",
    "cumsum_overdue_df = cumsum_overdue_df.swaplevel()\n",
    "cumsum_overdue_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "e4560c19-75fe-4e08-99cb-cd1413ebcc29",
   "metadata": {},
   "outputs": [],
   "source": [
    "vintage_df['OVERDUE_RATIO'] = (cumsum_overdue_df / vintage_df['LENDING_COUNT'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "09c121b4-381c-459a-8af1-891168f270b6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MOB</th>\n",
       "      <th>OVERDUE_RATIO</th>\n",
       "      <th>LENDING_COUNT</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-60</td>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-60</td>\n",
       "      <td>1</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-60</td>\n",
       "      <td>2</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-60</td>\n",
       "      <td>3</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-60</td>\n",
       "      <td>4</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1655</th>\n",
       "      <td>-21</td>\n",
       "      <td>17</td>\n",
       "      <td>0.017483</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1656</th>\n",
       "      <td>-21</td>\n",
       "      <td>18</td>\n",
       "      <td>0.017483</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1657</th>\n",
       "      <td>-21</td>\n",
       "      <td>19</td>\n",
       "      <td>0.017483</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1658</th>\n",
       "      <td>-21</td>\n",
       "      <td>20</td>\n",
       "      <td>0.017483</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1659</th>\n",
       "      <td>-21</td>\n",
       "      <td>21</td>\n",
       "      <td>0.017483</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1660 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      MIN_MONTH  MOB  OVERDUE_RATIO  LENDING_COUNT\n",
       "0           -60    0       0.000000            415\n",
       "1           -60    1       0.000000            415\n",
       "2           -60    2       0.000000            415\n",
       "3           -60    3       0.000000            415\n",
       "4           -60    4       0.000000            415\n",
       "...         ...  ...            ...            ...\n",
       "1655        -21   17       0.017483            858\n",
       "1656        -21   18       0.017483            858\n",
       "1657        -21   19       0.017483            858\n",
       "1658        -21   20       0.017483            858\n",
       "1659        -21   21       0.017483            858\n",
       "\n",
       "[1660 rows x 4 columns]"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vintage_df.reset_index()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "57d33a14-80c0-40a9-b417-9aa731d84efd",
   "metadata": {},
   "source": [
    "#### 透视表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "780d620d-c46c-4f92-8a79-bacdc1d5cef9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>MOB</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>...</th>\n",
       "      <th>51</th>\n",
       "      <th>52</th>\n",
       "      <th>53</th>\n",
       "      <th>54</th>\n",
       "      <th>55</th>\n",
       "      <th>56</th>\n",
       "      <th>57</th>\n",
       "      <th>58</th>\n",
       "      <th>59</th>\n",
       "      <th>60</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>-60</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002410</td>\n",
       "      <td>0.002410</td>\n",
       "      <td>0.007229</td>\n",
       "      <td>0.007229</td>\n",
       "      <td>0.009639</td>\n",
       "      <td>...</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.031325</td>\n",
       "      <td>0.031325</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-59</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.004926</td>\n",
       "      <td>0.004926</td>\n",
       "      <td>0.004926</td>\n",
       "      <td>0.007389</td>\n",
       "      <td>0.007389</td>\n",
       "      <td>0.007389</td>\n",
       "      <td>0.012315</td>\n",
       "      <td>...</td>\n",
       "      <td>0.029557</td>\n",
       "      <td>0.029557</td>\n",
       "      <td>0.029557</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-58</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.004545</td>\n",
       "      <td>0.006818</td>\n",
       "      <td>0.006818</td>\n",
       "      <td>...</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-57</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002500</td>\n",
       "      <td>0.002500</td>\n",
       "      <td>0.002500</td>\n",
       "      <td>0.007500</td>\n",
       "      <td>0.007500</td>\n",
       "      <td>0.007500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-56</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.004255</td>\n",
       "      <td>0.004255</td>\n",
       "      <td>0.008511</td>\n",
       "      <td>0.010638</td>\n",
       "      <td>0.010638</td>\n",
       "      <td>0.017021</td>\n",
       "      <td>0.017021</td>\n",
       "      <td>0.021277</td>\n",
       "      <td>...</td>\n",
       "      <td>0.036170</td>\n",
       "      <td>0.036170</td>\n",
       "      <td>0.036170</td>\n",
       "      <td>0.036170</td>\n",
       "      <td>0.038298</td>\n",
       "      <td>0.038298</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-55</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002058</td>\n",
       "      <td>0.006173</td>\n",
       "      <td>0.012346</td>\n",
       "      <td>0.016461</td>\n",
       "      <td>0.022634</td>\n",
       "      <td>0.022634</td>\n",
       "      <td>0.022634</td>\n",
       "      <td>0.024691</td>\n",
       "      <td>...</td>\n",
       "      <td>0.045267</td>\n",
       "      <td>0.045267</td>\n",
       "      <td>0.045267</td>\n",
       "      <td>0.045267</td>\n",
       "      <td>0.045267</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-54</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002137</td>\n",
       "      <td>0.004274</td>\n",
       "      <td>0.004274</td>\n",
       "      <td>0.006410</td>\n",
       "      <td>0.012821</td>\n",
       "      <td>0.012821</td>\n",
       "      <td>0.017094</td>\n",
       "      <td>...</td>\n",
       "      <td>0.032051</td>\n",
       "      <td>0.032051</td>\n",
       "      <td>0.032051</td>\n",
       "      <td>0.032051</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-53</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.002028</td>\n",
       "      <td>0.002028</td>\n",
       "      <td>0.002028</td>\n",
       "      <td>0.004057</td>\n",
       "      <td>0.004057</td>\n",
       "      <td>0.008114</td>\n",
       "      <td>0.010142</td>\n",
       "      <td>0.010142</td>\n",
       "      <td>0.012170</td>\n",
       "      <td>...</td>\n",
       "      <td>0.028398</td>\n",
       "      <td>0.028398</td>\n",
       "      <td>0.028398</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-52</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.007233</td>\n",
       "      <td>0.009042</td>\n",
       "      <td>0.009042</td>\n",
       "      <td>0.009042</td>\n",
       "      <td>0.012658</td>\n",
       "      <td>0.012658</td>\n",
       "      <td>0.014467</td>\n",
       "      <td>0.016275</td>\n",
       "      <td>...</td>\n",
       "      <td>0.023508</td>\n",
       "      <td>0.023508</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-51</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.001718</td>\n",
       "      <td>0.001718</td>\n",
       "      <td>0.003436</td>\n",
       "      <td>0.003436</td>\n",
       "      <td>0.008591</td>\n",
       "      <td>0.010309</td>\n",
       "      <td>0.013746</td>\n",
       "      <td>0.013746</td>\n",
       "      <td>0.015464</td>\n",
       "      <td>...</td>\n",
       "      <td>0.020619</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-50</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001842</td>\n",
       "      <td>0.003683</td>\n",
       "      <td>0.007366</td>\n",
       "      <td>0.007366</td>\n",
       "      <td>0.007366</td>\n",
       "      <td>0.007366</td>\n",
       "      <td>0.007366</td>\n",
       "      <td>0.009208</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-49</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.005425</td>\n",
       "      <td>0.005425</td>\n",
       "      <td>0.005425</td>\n",
       "      <td>0.007233</td>\n",
       "      <td>0.007233</td>\n",
       "      <td>0.009042</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-48</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001721</td>\n",
       "      <td>0.005164</td>\n",
       "      <td>0.006885</td>\n",
       "      <td>0.008606</td>\n",
       "      <td>0.010327</td>\n",
       "      <td>0.012048</td>\n",
       "      <td>0.012048</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-47</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.003273</td>\n",
       "      <td>0.004910</td>\n",
       "      <td>0.004910</td>\n",
       "      <td>0.013093</td>\n",
       "      <td>0.013093</td>\n",
       "      <td>0.013093</td>\n",
       "      <td>0.014730</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-46</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001739</td>\n",
       "      <td>0.003478</td>\n",
       "      <td>0.005217</td>\n",
       "      <td>0.006957</td>\n",
       "      <td>0.012174</td>\n",
       "      <td>0.012174</td>\n",
       "      <td>0.012174</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-45</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001653</td>\n",
       "      <td>0.004959</td>\n",
       "      <td>0.006612</td>\n",
       "      <td>0.006612</td>\n",
       "      <td>0.009917</td>\n",
       "      <td>0.009917</td>\n",
       "      <td>0.011570</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-44</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.001692</td>\n",
       "      <td>0.003384</td>\n",
       "      <td>0.005076</td>\n",
       "      <td>0.005076</td>\n",
       "      <td>0.006768</td>\n",
       "      <td>0.008460</td>\n",
       "      <td>0.011844</td>\n",
       "      <td>0.011844</td>\n",
       "      <td>0.011844</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-43</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001541</td>\n",
       "      <td>0.001541</td>\n",
       "      <td>0.004622</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-42</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001425</td>\n",
       "      <td>0.004274</td>\n",
       "      <td>0.007123</td>\n",
       "      <td>0.007123</td>\n",
       "      <td>0.009972</td>\n",
       "      <td>0.009972</td>\n",
       "      <td>0.011396</td>\n",
       "      <td>0.012821</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-41</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001435</td>\n",
       "      <td>0.008608</td>\n",
       "      <td>0.008608</td>\n",
       "      <td>0.010043</td>\n",
       "      <td>0.011478</td>\n",
       "      <td>0.012912</td>\n",
       "      <td>0.014347</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-40</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002714</td>\n",
       "      <td>0.002714</td>\n",
       "      <td>0.006784</td>\n",
       "      <td>0.008141</td>\n",
       "      <td>0.008141</td>\n",
       "      <td>0.008141</td>\n",
       "      <td>0.008141</td>\n",
       "      <td>0.010855</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-39</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.001203</td>\n",
       "      <td>0.001203</td>\n",
       "      <td>0.001203</td>\n",
       "      <td>0.001203</td>\n",
       "      <td>0.003610</td>\n",
       "      <td>0.003610</td>\n",
       "      <td>0.004813</td>\n",
       "      <td>0.006017</td>\n",
       "      <td>0.006017</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-38</th>\n",
       "      <td>0.00134</td>\n",
       "      <td>0.001340</td>\n",
       "      <td>0.001340</td>\n",
       "      <td>0.001340</td>\n",
       "      <td>0.002681</td>\n",
       "      <td>0.002681</td>\n",
       "      <td>0.002681</td>\n",
       "      <td>0.004021</td>\n",
       "      <td>0.005362</td>\n",
       "      <td>0.006702</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-37</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001389</td>\n",
       "      <td>0.001389</td>\n",
       "      <td>0.001389</td>\n",
       "      <td>0.006944</td>\n",
       "      <td>0.006944</td>\n",
       "      <td>0.008333</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-36</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001443</td>\n",
       "      <td>0.002886</td>\n",
       "      <td>0.005772</td>\n",
       "      <td>0.005772</td>\n",
       "      <td>0.007215</td>\n",
       "      <td>0.010101</td>\n",
       "      <td>0.011544</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-35</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001312</td>\n",
       "      <td>0.001312</td>\n",
       "      <td>0.001312</td>\n",
       "      <td>0.001312</td>\n",
       "      <td>0.002625</td>\n",
       "      <td>0.005249</td>\n",
       "      <td>0.006562</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-34</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001344</td>\n",
       "      <td>0.002688</td>\n",
       "      <td>0.006720</td>\n",
       "      <td>0.006720</td>\n",
       "      <td>0.008065</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-33</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001377</td>\n",
       "      <td>0.001377</td>\n",
       "      <td>0.001377</td>\n",
       "      <td>0.001377</td>\n",
       "      <td>0.001377</td>\n",
       "      <td>0.004132</td>\n",
       "      <td>0.004132</td>\n",
       "      <td>0.004132</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-32</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001344</td>\n",
       "      <td>0.001344</td>\n",
       "      <td>0.002688</td>\n",
       "      <td>0.002688</td>\n",
       "      <td>0.004032</td>\n",
       "      <td>0.004032</td>\n",
       "      <td>0.006720</td>\n",
       "      <td>0.006720</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-31</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002674</td>\n",
       "      <td>0.004011</td>\n",
       "      <td>0.004011</td>\n",
       "      <td>0.004011</td>\n",
       "      <td>0.004011</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-30</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001244</td>\n",
       "      <td>0.001244</td>\n",
       "      <td>0.002488</td>\n",
       "      <td>0.002488</td>\n",
       "      <td>0.006219</td>\n",
       "      <td>0.006219</td>\n",
       "      <td>0.008706</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-29</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001282</td>\n",
       "      <td>0.002564</td>\n",
       "      <td>0.005128</td>\n",
       "      <td>0.005128</td>\n",
       "      <td>0.006410</td>\n",
       "      <td>0.007692</td>\n",
       "      <td>0.007692</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-28</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001241</td>\n",
       "      <td>0.001241</td>\n",
       "      <td>0.001241</td>\n",
       "      <td>0.002481</td>\n",
       "      <td>0.003722</td>\n",
       "      <td>0.004963</td>\n",
       "      <td>0.006203</td>\n",
       "      <td>0.007444</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-27</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001196</td>\n",
       "      <td>0.002392</td>\n",
       "      <td>0.003589</td>\n",
       "      <td>0.003589</td>\n",
       "      <td>0.004785</td>\n",
       "      <td>0.005981</td>\n",
       "      <td>0.008373</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-26</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002660</td>\n",
       "      <td>0.003989</td>\n",
       "      <td>0.005319</td>\n",
       "      <td>0.005319</td>\n",
       "      <td>0.006649</td>\n",
       "      <td>0.006649</td>\n",
       "      <td>0.006649</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-25</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001159</td>\n",
       "      <td>0.002317</td>\n",
       "      <td>0.004635</td>\n",
       "      <td>0.006952</td>\n",
       "      <td>0.006952</td>\n",
       "      <td>0.010429</td>\n",
       "      <td>0.010429</td>\n",
       "      <td>0.010429</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-24</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001119</td>\n",
       "      <td>0.002237</td>\n",
       "      <td>0.003356</td>\n",
       "      <td>0.003356</td>\n",
       "      <td>0.004474</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-23</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002225</td>\n",
       "      <td>0.004449</td>\n",
       "      <td>0.005562</td>\n",
       "      <td>0.005562</td>\n",
       "      <td>0.005562</td>\n",
       "      <td>0.006674</td>\n",
       "      <td>0.006674</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-22</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001156</td>\n",
       "      <td>0.002312</td>\n",
       "      <td>0.002312</td>\n",
       "      <td>0.003468</td>\n",
       "      <td>0.003468</td>\n",
       "      <td>0.004624</td>\n",
       "      <td>0.005780</td>\n",
       "      <td>0.005780</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-21</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.003497</td>\n",
       "      <td>0.004662</td>\n",
       "      <td>0.004662</td>\n",
       "      <td>0.006993</td>\n",
       "      <td>0.009324</td>\n",
       "      <td>0.010490</td>\n",
       "      <td>0.010490</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>40 rows × 61 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "MOB             0         1         2         3         4         5   \\\n",
       "MIN_MONTH                                                              \n",
       "-60        0.00000  0.000000  0.000000  0.000000  0.000000  0.002410   \n",
       "-59        0.00000  0.000000  0.000000  0.004926  0.004926  0.004926   \n",
       "-58        0.00000  0.000000  0.000000  0.000000  0.000000  0.000000   \n",
       "-57        0.00000  0.000000  0.000000  0.000000  0.002500  0.002500   \n",
       "-56        0.00000  0.000000  0.004255  0.004255  0.008511  0.010638   \n",
       "-55        0.00000  0.000000  0.002058  0.006173  0.012346  0.016461   \n",
       "-54        0.00000  0.000000  0.000000  0.002137  0.004274  0.004274   \n",
       "-53        0.00000  0.002028  0.002028  0.002028  0.004057  0.004057   \n",
       "-52        0.00000  0.000000  0.007233  0.009042  0.009042  0.009042   \n",
       "-51        0.00000  0.001718  0.001718  0.003436  0.003436  0.008591   \n",
       "-50        0.00000  0.000000  0.001842  0.003683  0.007366  0.007366   \n",
       "-49        0.00000  0.000000  0.000000  0.000000  0.005425  0.005425   \n",
       "-48        0.00000  0.000000  0.000000  0.001721  0.005164  0.006885   \n",
       "-47        0.00000  0.000000  0.000000  0.003273  0.004910  0.004910   \n",
       "-46        0.00000  0.000000  0.000000  0.001739  0.003478  0.005217   \n",
       "-45        0.00000  0.000000  0.000000  0.001653  0.004959  0.006612   \n",
       "-44        0.00000  0.001692  0.003384  0.005076  0.005076  0.006768   \n",
       "-43        0.00000  0.000000  0.000000  0.000000  0.000000  0.000000   \n",
       "-42        0.00000  0.000000  0.001425  0.004274  0.007123  0.007123   \n",
       "-41        0.00000  0.000000  0.000000  0.001435  0.008608  0.008608   \n",
       "-40        0.00000  0.000000  0.002714  0.002714  0.006784  0.008141   \n",
       "-39        0.00000  0.001203  0.001203  0.001203  0.001203  0.003610   \n",
       "-38        0.00134  0.001340  0.001340  0.001340  0.002681  0.002681   \n",
       "-37        0.00000  0.000000  0.000000  0.000000  0.001389  0.001389   \n",
       "-36        0.00000  0.000000  0.000000  0.001443  0.002886  0.005772   \n",
       "-35        0.00000  0.000000  0.000000  0.001312  0.001312  0.001312   \n",
       "-34        0.00000  0.000000  0.000000  0.000000  0.000000  0.001344   \n",
       "-33        0.00000  0.000000  0.001377  0.001377  0.001377  0.001377   \n",
       "-32        0.00000  0.000000  0.001344  0.001344  0.002688  0.002688   \n",
       "-31        0.00000  0.000000  0.000000  0.000000  0.000000  0.002674   \n",
       "-30        0.00000  0.000000  0.000000  0.001244  0.001244  0.002488   \n",
       "-29        0.00000  0.000000  0.000000  0.001282  0.002564  0.005128   \n",
       "-28        0.00000  0.000000  0.001241  0.001241  0.001241  0.002481   \n",
       "-27        0.00000  0.000000  0.000000  0.001196  0.002392  0.003589   \n",
       "-26        0.00000  0.000000  0.000000  0.002660  0.003989  0.005319   \n",
       "-25        0.00000  0.000000  0.001159  0.002317  0.004635  0.006952   \n",
       "-24        0.00000  0.000000  0.000000  0.000000  0.000000  0.001119   \n",
       "-23        0.00000  0.000000  0.000000  0.002225  0.004449  0.005562   \n",
       "-22        0.00000  0.000000  0.001156  0.002312  0.002312  0.003468   \n",
       "-21        0.00000  0.000000  0.000000  0.003497  0.004662  0.004662   \n",
       "\n",
       "MOB              6         7         8         9   ...        51        52  \\\n",
       "MIN_MONTH                                          ...                       \n",
       "-60        0.002410  0.007229  0.007229  0.009639  ...  0.028916  0.028916   \n",
       "-59        0.007389  0.007389  0.007389  0.012315  ...  0.029557  0.029557   \n",
       "-58        0.000000  0.004545  0.006818  0.006818  ...  0.025000  0.025000   \n",
       "-57        0.002500  0.007500  0.007500  0.007500  ...  0.025000  0.025000   \n",
       "-56        0.010638  0.017021  0.017021  0.021277  ...  0.036170  0.036170   \n",
       "-55        0.022634  0.022634  0.022634  0.024691  ...  0.045267  0.045267   \n",
       "-54        0.006410  0.012821  0.012821  0.017094  ...  0.032051  0.032051   \n",
       "-53        0.008114  0.010142  0.010142  0.012170  ...  0.028398  0.028398   \n",
       "-52        0.012658  0.012658  0.014467  0.016275  ...  0.023508  0.023508   \n",
       "-51        0.010309  0.013746  0.013746  0.015464  ...  0.020619       NaN   \n",
       "-50        0.007366  0.007366  0.007366  0.009208  ...       NaN       NaN   \n",
       "-49        0.005425  0.007233  0.007233  0.009042  ...       NaN       NaN   \n",
       "-48        0.008606  0.010327  0.012048  0.012048  ...       NaN       NaN   \n",
       "-47        0.013093  0.013093  0.013093  0.014730  ...       NaN       NaN   \n",
       "-46        0.006957  0.012174  0.012174  0.012174  ...       NaN       NaN   \n",
       "-45        0.006612  0.009917  0.009917  0.011570  ...       NaN       NaN   \n",
       "-44        0.008460  0.011844  0.011844  0.011844  ...       NaN       NaN   \n",
       "-43        0.000000  0.001541  0.001541  0.004622  ...       NaN       NaN   \n",
       "-42        0.009972  0.009972  0.011396  0.012821  ...       NaN       NaN   \n",
       "-41        0.010043  0.011478  0.012912  0.014347  ...       NaN       NaN   \n",
       "-40        0.008141  0.008141  0.008141  0.010855  ...       NaN       NaN   \n",
       "-39        0.003610  0.004813  0.006017  0.006017  ...       NaN       NaN   \n",
       "-38        0.002681  0.004021  0.005362  0.006702  ...       NaN       NaN   \n",
       "-37        0.001389  0.006944  0.006944  0.008333  ...       NaN       NaN   \n",
       "-36        0.005772  0.007215  0.010101  0.011544  ...       NaN       NaN   \n",
       "-35        0.001312  0.002625  0.005249  0.006562  ...       NaN       NaN   \n",
       "-34        0.002688  0.006720  0.006720  0.008065  ...       NaN       NaN   \n",
       "-33        0.001377  0.004132  0.004132  0.004132  ...       NaN       NaN   \n",
       "-32        0.004032  0.004032  0.006720  0.006720  ...       NaN       NaN   \n",
       "-31        0.004011  0.004011  0.004011  0.004011  ...       NaN       NaN   \n",
       "-30        0.002488  0.006219  0.006219  0.008706  ...       NaN       NaN   \n",
       "-29        0.005128  0.006410  0.007692  0.007692  ...       NaN       NaN   \n",
       "-28        0.003722  0.004963  0.006203  0.007444  ...       NaN       NaN   \n",
       "-27        0.003589  0.004785  0.005981  0.008373  ...       NaN       NaN   \n",
       "-26        0.005319  0.006649  0.006649  0.006649  ...       NaN       NaN   \n",
       "-25        0.006952  0.010429  0.010429  0.010429  ...       NaN       NaN   \n",
       "-24        0.002237  0.003356  0.003356  0.004474  ...       NaN       NaN   \n",
       "-23        0.005562  0.005562  0.006674  0.006674  ...       NaN       NaN   \n",
       "-22        0.003468  0.004624  0.005780  0.005780  ...       NaN       NaN   \n",
       "-21        0.006993  0.009324  0.010490  0.010490  ...       NaN       NaN   \n",
       "\n",
       "MOB              53        54        55        56        57        58  \\\n",
       "MIN_MONTH                                                               \n",
       "-60        0.028916  0.028916  0.028916  0.028916  0.028916  0.031325   \n",
       "-59        0.029557  0.032020  0.032020  0.032020  0.032020  0.032020   \n",
       "-58        0.025000  0.025000  0.025000  0.025000  0.025000  0.025000   \n",
       "-57        0.025000  0.025000  0.025000  0.025000  0.025000       NaN   \n",
       "-56        0.036170  0.036170  0.038298  0.038298       NaN       NaN   \n",
       "-55        0.045267  0.045267  0.045267       NaN       NaN       NaN   \n",
       "-54        0.032051  0.032051       NaN       NaN       NaN       NaN   \n",
       "-53        0.028398       NaN       NaN       NaN       NaN       NaN   \n",
       "-52             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-51             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-50             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-49             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-48             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-47             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-46             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-45             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-44             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-43             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-42             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-41             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-40             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-39             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-38             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-37             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-36             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-35             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-34             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-33             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-32             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-31             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-30             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-29             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-28             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-27             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-26             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-25             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-24             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-23             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-22             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-21             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "\n",
       "MOB              59  60  \n",
       "MIN_MONTH                \n",
       "-60        0.031325 NaN  \n",
       "-59        0.032020 NaN  \n",
       "-58             NaN NaN  \n",
       "-57             NaN NaN  \n",
       "-56             NaN NaN  \n",
       "-55             NaN NaN  \n",
       "-54             NaN NaN  \n",
       "-53             NaN NaN  \n",
       "-52             NaN NaN  \n",
       "-51             NaN NaN  \n",
       "-50             NaN NaN  \n",
       "-49             NaN NaN  \n",
       "-48             NaN NaN  \n",
       "-47             NaN NaN  \n",
       "-46             NaN NaN  \n",
       "-45             NaN NaN  \n",
       "-44             NaN NaN  \n",
       "-43             NaN NaN  \n",
       "-42             NaN NaN  \n",
       "-41             NaN NaN  \n",
       "-40             NaN NaN  \n",
       "-39             NaN NaN  \n",
       "-38             NaN NaN  \n",
       "-37             NaN NaN  \n",
       "-36             NaN NaN  \n",
       "-35             NaN NaN  \n",
       "-34             NaN NaN  \n",
       "-33             NaN NaN  \n",
       "-32             NaN NaN  \n",
       "-31             NaN NaN  \n",
       "-30             NaN NaN  \n",
       "-29             NaN NaN  \n",
       "-28             NaN NaN  \n",
       "-27             NaN NaN  \n",
       "-26             NaN NaN  \n",
       "-25             NaN NaN  \n",
       "-24             NaN NaN  \n",
       "-23             NaN NaN  \n",
       "-22             NaN NaN  \n",
       "-21             NaN NaN  \n",
       "\n",
       "[40 rows x 61 columns]"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vintage_wide_df = vintage_df.reset_index().pivot(index = 'MIN_MONTH',\n",
    "                             columns = 'MOB',\n",
    "                             values = 'OVERDUE_RATIO')\n",
    "vintage_wide_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1bdbdf01-038b-4c5f-aac1-36a84b5b4376",
   "metadata": {},
   "source": [
    "### 画图展示"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "07fc86af-a565-4efb-a42b-44f7af0647bc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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33+fP//8k9zcXAYOHMiECROqlKFTp05s2bIFg8HAzp076dixI1999RWjRo2idevWNcpvsVgYO3Yst99+Ozk5Ofzvf/9j4sSJnD17lrfffpvXXnutfIVQ29OfEIK1a9diNpvp0KEDAHa7nUcffZTk5GRSUlJwcXHh6aefLm/z0EMP0bNnT/Ly8njjjTdYtGhRtf1v2bKFkSNHotFoapSjOj777DOCg4PJzc0lOzub999/H5lMxpIlS2jZsiWrV69Gr9fz0ksvERcXx4QJE5g9eza5ubmMHj2asWPHYjaby/ur63cqPT2dMWPG8Prrr1NQUMCnn37KvffeS25ubnlfS5YsYf78+eh0Onx9fXn22WdZv349Op2OPXv20K1btyrndOLECdq1a1eh7K+//uK1115j06ZNhIaG8tBDD7F58+YaVyZpaWmkpaVx8uRJQkJCCA8P58033yxvc+rUKbp27Vpev3Xr1jg6OlbYgqqN3r17ExwczM6dOwFQq9UsXryYoqIi1q5dy7fffsvKlSsBmDJlCj/99FN522PHjpGens7o0aPZtGkTf//9d/mKYNmyZXh7e9c6fl5eHsuXL6d79+5A9b9dgMcee4x58+ah0+k4efIkQ4cORa1Ws379egIDA8tXzIGBgXWau6urK8OHDy+fe21MmTIFhULBuXPnOHLkCJs2beK7774rvx4ZGUlSUhJarbZO/UEz3WLKz8/Hx8enxi2OuvDMM8/QokULgoKCGDhwIH369KF79+44OTlx9913c+TIkXr1O3XqVFxdXXFycuKtt97i2LFjdd5rfOihh/jll1+Aspvrr7/+ykMPPQSUbRu9+uqrREZGolAoeO211zh69CjJycmV+nnssccoLi6mT58+DBw4kK5du7JkyRKee+45ZsyYwaBBgyqdhVxg37596PV6XnnlFRwdHRk6dCh33HFHuVx14bfffsPDwwO1Ws24ceN47bXX8PDwAMDb25t7770XlUqFq6sr//nPf9ixYwcAKSkpHDhwgHfffRcnJycGDRrE2LFjqx0nPz+fgICAOst1OUqlkszMTJKTk1EqlQwcOBCZTFZl3WXLljFmzBiGDx+OUqnkxRdfxGAwsGfPnvI6df1O/fTTT4wePZrRo0cjl8sZPnw4UVFRrFu3rryvRx55hI4dO6JQKFAoFMjlck6ePInBYCAgIICOHTtW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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot vintage line chart\n",
    "plt.rcParams['figure.facecolor'] = 'white'\n",
    "vintage_wide_df.T.plot(legend = False, grid = True, title = 'Cumulative % of Bad Customers (> 60 Days Past Due)')\n",
    "plt.xlabel('Months on Books')\n",
    "plt.ylabel('Cumulative % > 60 Days Past Due')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7edd07a4-e37d-47dc-9ad5-7f25c146cd69",
   "metadata": {},
   "source": [
    "# SQL操作"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fd994743-d370-4035-a2fc-8fd54ac7113d",
   "metadata": {},
   "source": [
    "## 数据库操作"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f40e8034-cb8a-42d4-ab59-961e35dcb30b",
   "metadata": {},
   "source": [
    "### 建库建表"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1311b609-2c2b-4c04-a713-fa6d8caf0378",
   "metadata": {},
   "source": [
    "#### 建库连接"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "id": "3ce25149-4dfa-4242-a1af-f8128011e26f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入pymysql模块\n",
    "import pymysql"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "75e0c453-3251-446d-bed5-3e403953a4a9",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 连接database\n",
    "conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='biliafan'\n",
    "                       ,database='vintage', charset='utf8')\n",
    "# 得到一个可以执行SQL语句并且将结果作为字典返回的游标\n",
    "cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "75f9b958-15c3-4600-a62d-d92bd59ef00a",
   "metadata": {},
   "source": [
    "#### 表外键说明"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd40411e-d56f-4a1e-81e7-bc96b393c894",
   "metadata": {},
   "source": [
    "这里不适用，表外键也不是必须"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d0151a48-18a6-40ef-89ca-92a0be09ac95",
   "metadata": {},
   "source": [
    "#### 数据脱敏说明"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6189219d-890b-40f3-9cf0-a83a7dad8c46",
   "metadata": {},
   "source": [
    "你发现这里面只有ID，用户的四元组信息没有透露，甚至出生日期都没有说明，需要自己反推"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3f1d3f45-3f43-42d5-81b6-5baf1a24765c",
   "metadata": {},
   "source": [
    "#### 建用户表"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3fd53942-125f-47d3-bedd-fc7cddee5d18",
   "metadata": {},
   "source": [
    "我们是事后建表导入，一般来说如果数据从业务库来的，ID这种唯一的类型不可能重复"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1864a669-68b6-423d-9659-e2333332fa90",
   "metadata": {},
   "source": [
    "这个记录表是上游每天加工而成的，会每天刷新它的贷款时间和违约情况（举例，原始表情况，用Pandas举例）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "756d171f-b65b-43d2-a1f4-6dc69eaacce4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义要执行的SQL语句\n",
    "# 这里没有严格卡死表的字段类型，不考虑空间利用情况\n",
    "sql = \"\"\"\n",
    "CREATE TABLE USER (\n",
    "ID INT,\n",
    "CODE_GENDER CHAR(1), \n",
    "FLAG_OWN_CAR CHAR(1),\n",
    "FLAG_OWN_REALTY CHAR(1),\n",
    "CNT_CHILDREN INT,\n",
    "AMT_INCOME_TOTAL FLOAT,\n",
    "NAME_INCOME_TYPE VARCHAR(64),\n",
    "NAME_EDUCATION_TYPE VARCHAR(64),\n",
    "NAME_FAMILY_STATUS VARCHAR(64),\n",
    "NAME_HOUSING_TYPE VARCHAR(64),\n",
    "DAYS_BIRTH INT,\n",
    "DAYS_EMPLOYED INT,\n",
    "FLAG_MOBIL INT,\n",
    "FLAG_WORK_PHONE INT,\n",
    "FLAG_PHONE INT,\n",
    "FLAG_EMAIL INT,\n",
    "OCCUPATION_TYPE VARCHAR(64),\n",
    "CNT_FAM_MEMBERS INT\n",
    ")ENGINE=innodb DEFAULT CHARSET=utf8;\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "b2e90495-a8b9-43c2-beb8-c08212bd14fd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 执行SQL语句\n",
    "cursor.execute(sql)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6d16d735-f4d5-4c49-9a94-f5fecb4fc2a2",
   "metadata": {},
   "source": [
    "#### 建记录表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "809d9b07-03bd-4bf0-935c-ea66f4efa51d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义要执行的SQL语句\n",
    "sql = \"\"\"\n",
    "CREATE TABLE CREDIT(\n",
    "ID INT, \n",
    "MONTHS_BALANCE INT NOT NULL,\n",
    "STATUS VARCHAR(10) NOT NULL\n",
    ")ENGINE=innodb DEFAULT CHARSET=utf8;\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "aa29fcab-73c2-4e87-a319-7e7de8d80cdd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 执行SQL语句\n",
    "cursor.execute(sql)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1ebd12fb-b342-4e8a-881d-bf301eb25226",
   "metadata": {},
   "source": [
    "### 数据入库"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "488e6dd8-56f1-4d36-8aaf-fd4267179567",
   "metadata": {},
   "source": [
    "#### 用户信息入库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "f7c85d36-c261-4dd0-8b60-b63af86e7f2a",
   "metadata": {},
   "outputs": [],
   "source": [
    "user_column_list = ['ID', 'CODE_GENDER', 'FLAG_OWN_CAR', 'FLAG_OWN_REALTY', 'CNT_CHILDREN', 'AMT_INCOME_TOTAL', 'NAME_INCOME_TYPE', 'NAME_EDUCATION_TYPE', 'NAME_FAMILY_STATUS', 'NAME_HOUSING_TYPE', 'DAYS_BIRTH', 'DAYS_EMPLOYED', 'FLAG_MOBIL', 'FLAG_WORK_PHONE', 'FLAG_PHONE', 'FLAG_EMAIL', 'OCCUPATION_TYPE', 'CNT_FAM_MEMBERS']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "def854e5-3c5f-49a7-a9c5-9e1b02a719b6",
   "metadata": {},
   "outputs": [],
   "source": [
    "user_insert_sql = \"INSERT INTO USER(ID, CODE_GENDER, FLAG_OWN_CAR, FLAG_OWN_REALTY, CNT_CHILDREN, AMT_INCOME_TOTAL, NAME_INCOME_TYPE, NAME_EDUCATION_TYPE, NAME_FAMILY_STATUS, NAME_HOUSING_TYPE, DAYS_BIRTH, DAYS_EMPLOYED, FLAG_MOBIL, FLAG_WORK_PHONE, FLAG_PHONE, FLAG_EMAIL, OCCUPATION_TYPE, CNT_FAM_MEMBERS) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "id": "6064fb5d-6968-4a74-bc94-a522db61cdbe",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# 有重复的ID\n",
    "application_record_df = application_record_df.drop_duplicates(subset=['ID'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "9c659992-ed80-407f-b32a-2c1fdb807428",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调整顺序的必要性\n",
    "databse_user_df = application_record_df.loc[:, user_column_list]\n",
    "databse_user_df = databse_user_df.where(databse_user_df.notnull(), None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "6bbf8e02-c145-4a17-898e-e3864e303abb",
   "metadata": {},
   "outputs": [],
   "source": [
    "try:\n",
    "    # 批量执行多条插入SQL语句\n",
    "    cursor.executemany(user_insert_sql, databse_user_df.values.tolist())\n",
    "    # 提交事务\n",
    "    conn.commit()\n",
    "except Exception as e:\n",
    "    print(e)\n",
    "    # 有异常，回滚事务\n",
    "    conn.rollback()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "25e7ccab-31b4-4277-8738-1306c41f7d00",
   "metadata": {
    "tags": []
   },
   "source": [
    "#### 记录信息入库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "7e6b0821-1dad-497d-8694-cfb532a754cc",
   "metadata": {},
   "outputs": [],
   "source": [
    "credit_column_list = ['ID', 'MONTHS_BALANCE', 'STATUS']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "ce69d016-5f3d-4a36-9334-4e2a547f45c6",
   "metadata": {},
   "outputs": [],
   "source": [
    "credit_insert_sql = \"INSERT INTO CREDIT(ID, MONTHS_BALANCE, STATUS) VALUES (%s, %s, %s);\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "6833d22c-c24b-4340-9296-db99b2fd382d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调整顺序的必要性\n",
    "databse_credit_df = credit_record_df.loc[:, credit_column_list]\n",
    "databse_credit_df = databse_credit_df.where(databse_credit_df.notnull(), None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "id": "dca98208-9f16-46f1-aea3-af9b24994d9f",
   "metadata": {},
   "outputs": [],
   "source": [
    "try:\n",
    "    # 批量执行多条插入SQL语句\n",
    "    cursor.executemany(credit_insert_sql, databse_credit_df.values.tolist())\n",
    "    # 提交事务\n",
    "    conn.commit()\n",
    "except Exception as e:\n",
    "    print(e)\n",
    "    # 有异常，回滚事务\n",
    "    conn.rollback()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d5742abc-6873-44b4-9ad4-b9f616755580",
   "metadata": {},
   "source": [
    "## 获取全部数据"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "217af695-1501-4683-a5ec-b4d9e7549e6e",
   "metadata": {},
   "source": [
    "假设数据量太大，我们不能直接取出来到Pandas当中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "e4b1b3b4-6383-4ff1-a4e3-3197a154d431",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>0</td>\n",
       "      <td>X</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001712</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048570</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-25</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048571</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-26</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048572</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-27</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048573</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-28</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048574</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1048575 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              ID  MONTHS_BALANCE STATUS\n",
       "0        5001711               0      X\n",
       "1        5001711              -1      0\n",
       "2        5001711              -2      0\n",
       "3        5001711              -3      0\n",
       "4        5001712               0      C\n",
       "...          ...             ...    ...\n",
       "1048570  5150487             -25      C\n",
       "1048571  5150487             -26      C\n",
       "1048572  5150487             -27      C\n",
       "1048573  5150487             -28      C\n",
       "1048574  5150487             -29      C\n",
       "\n",
       "[1048575 rows x 3 columns]"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute('select * from credit')\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f439a2b1-5180-4e65-9832-5beb4b862c2b",
   "metadata": {},
   "source": [
    "## 分组聚合- GROUP BY"
   ]
  },
  {
   "cell_type": "raw",
   "id": "ac8bc920-8492-465b-b4b4-59bf74433374",
   "metadata": {},
   "source": [
    "credit_grouped_df = credit_record_df.groupby('ID')"
   ]
  },
  {
   "cell_type": "raw",
   "id": "49583624-77b9-42f8-b00b-d3ad3e4e393a",
   "metadata": {},
   "source": [
    "# 获取每个账单的最大、最小月数，从而计算距今多久了\n",
    "credit_pivot_df = pd.DataFrame()\n",
    "credit_pivot_df['MIN_MONTH'] = credit_grouped_df['MONTHS_BALANCE'].min()\n",
    "credit_pivot_df['MAX_MONTH'] = credit_grouped_df['MONTHS_BALANCE'].max()\n",
    "credit_pivot_df['PERIODS'] = credit_pivot_df['MAX_MONTH'] - credit_pivot_df['MIN_MONTH']\n",
    "credit_pivot_df = credit_pivot_df.reset_index()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "86ec4f35-b3df-4c96-882f-d94d04e1169e",
   "metadata": {},
   "source": [
    "### 取最大最小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "id": "60d7baef-4701-4aee-a0ad-fc3a0d1367a1",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "SELECT\n",
    "    ID\n",
    "    ,MIN(MONTHS_BALANCE) AS MIN_MONTH\n",
    "    ,MAX(MONTHS_BALANCE) AS MAX_MONTH\n",
    "FROM \n",
    "    credit \n",
    "GROUP BY \n",
    "    ID\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "30d5c368-0ddb-4a38-9311-af02d7f22236",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001712</td>\n",
       "      <td>-18</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001714</td>\n",
       "      <td>-14</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001715</td>\n",
       "      <td>-59</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45980</th>\n",
       "      <td>5150482</td>\n",
       "      <td>-28</td>\n",
       "      <td>-11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45981</th>\n",
       "      <td>5150483</td>\n",
       "      <td>-17</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45982</th>\n",
       "      <td>5150484</td>\n",
       "      <td>-12</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45983</th>\n",
       "      <td>5150485</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45984</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>45985 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            ID  MIN_MONTH  MAX_MONTH\n",
       "0      5001711         -3          0\n",
       "1      5001712        -18          0\n",
       "2      5001713        -21          0\n",
       "3      5001714        -14          0\n",
       "4      5001715        -59          0\n",
       "...        ...        ...        ...\n",
       "45980  5150482        -28        -11\n",
       "45981  5150483        -17          0\n",
       "45982  5150484        -12          0\n",
       "45983  5150485         -1          0\n",
       "45984  5150487        -29          0\n",
       "\n",
       "[45985 rows x 3 columns]"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "96bb0dd3-53c0-4a39-ab43-ecf83dbea17b",
   "metadata": {},
   "source": [
    "### 计算区间 - 语句嵌套"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "id": "57d46b31-6926-497e-a401-7e5ee135068b",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "SELECT\n",
    "    *\n",
    "    ,MAX_MONTH - MIN_MONTH AS PERIODS\n",
    "FROM\n",
    "    (SELECT\n",
    "        ID\n",
    "        ,MIN(MONTHS_BALANCE) AS MIN_MONTH\n",
    "        ,MAX(MONTHS_BALANCE) AS MAX_MONTH\n",
    "    FROM \n",
    "        credit \n",
    "    GROUP BY \n",
    "        ID) AS TABLE_A\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "id": "9f22dce5-ad0f-4c01-b66e-c7648aa8fea1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001712</td>\n",
       "      <td>-18</td>\n",
       "      <td>0</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001714</td>\n",
       "      <td>-14</td>\n",
       "      <td>0</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001715</td>\n",
       "      <td>-59</td>\n",
       "      <td>0</td>\n",
       "      <td>59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45980</th>\n",
       "      <td>5150482</td>\n",
       "      <td>-28</td>\n",
       "      <td>-11</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45981</th>\n",
       "      <td>5150483</td>\n",
       "      <td>-17</td>\n",
       "      <td>0</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45982</th>\n",
       "      <td>5150484</td>\n",
       "      <td>-12</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45983</th>\n",
       "      <td>5150485</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45984</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>45985 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            ID  MIN_MONTH  MAX_MONTH  PERIODS\n",
       "0      5001711         -3          0        3\n",
       "1      5001712        -18          0       18\n",
       "2      5001713        -21          0       21\n",
       "3      5001714        -14          0       14\n",
       "4      5001715        -59          0       59\n",
       "...        ...        ...        ...      ...\n",
       "45980  5150482        -28        -11       17\n",
       "45981  5150483        -17          0       17\n",
       "45982  5150484        -12          0       12\n",
       "45983  5150485         -1          0        1\n",
       "45984  5150487        -29          0       29\n",
       "\n",
       "[45985 rows x 4 columns]"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2313c69-c9a0-438d-90d0-2b6ff3fc6d5a",
   "metadata": {},
   "source": [
    "### 对比Pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "id": "353a620c-c072-4959-9376-ced747ffb242",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001712</td>\n",
       "      <td>-18</td>\n",
       "      <td>0</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001714</td>\n",
       "      <td>-14</td>\n",
       "      <td>0</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001715</td>\n",
       "      <td>-59</td>\n",
       "      <td>0</td>\n",
       "      <td>59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45980</th>\n",
       "      <td>5150482</td>\n",
       "      <td>-28</td>\n",
       "      <td>-11</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45981</th>\n",
       "      <td>5150483</td>\n",
       "      <td>-17</td>\n",
       "      <td>0</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45982</th>\n",
       "      <td>5150484</td>\n",
       "      <td>-12</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45983</th>\n",
       "      <td>5150485</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45984</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>45985 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            ID  MIN_MONTH  MAX_MONTH  PERIODS\n",
       "0      5001711         -3          0        3\n",
       "1      5001712        -18          0       18\n",
       "2      5001713        -21          0       21\n",
       "3      5001714        -14          0       14\n",
       "4      5001715        -59          0       59\n",
       "...        ...        ...        ...      ...\n",
       "45980  5150482        -28        -11       17\n",
       "45981  5150483        -17          0       17\n",
       "45982  5150484        -12          0       12\n",
       "45983  5150485         -1          0        1\n",
       "45984  5150487        -29          0       29\n",
       "\n",
       "[45985 rows x 4 columns]"
      ]
     },
     "execution_count": 126,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_pivot_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "19494012-4604-4a22-b853-03eceb3649c5",
   "metadata": {},
   "source": [
    "### 保存临时表 - CREATE AS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "id": "3fe21ffc-8d3c-4845-b0cf-100a99ac6a49",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "-- 该表的目的是生成ID粒度的统计表\n",
    "CREATE TABLE IF NOT EXISTS credit_pivot AS\n",
    "SELECT\n",
    "    *\n",
    "    ,MAX_MONTH - MIN_MONTH AS PERIODS\n",
    "FROM\n",
    "    (SELECT\n",
    "        ID\n",
    "        ,MIN(MONTHS_BALANCE) AS MIN_MONTH\n",
    "        ,MAX(MONTHS_BALANCE) AS MAX_MONTH\n",
    "    FROM \n",
    "        credit \n",
    "    GROUP BY  \n",
    "        ID) AS TABLE_A\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "id": "c3fdbcf1-8e42-44d6-9c76-11980f7a24ca",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: []\n",
       "Index: []"
      ]
     },
     "execution_count": 128,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1945d98c-af31-4715-9f45-747c092b0bd4",
   "metadata": {},
   "source": [
    "## 合并表 - LEFT JOIN"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7398dff6-a1ba-4f75-94cb-2a86ec4c012b",
   "metadata": {},
   "source": [
    "看以谁去匹配谁，业务上习惯上把需要匹配上数据的表放在左边"
   ]
  },
  {
   "cell_type": "raw",
   "id": "723acd51-a4e4-493d-9f3d-e7bcaa718f7c",
   "metadata": {},
   "source": [
    "# 给原始数据添加上我们计算出来的3列\n",
    "credit_join_df = pd.merge(credit_record_df, credit_pivot_df, on = 'ID', how = 'left')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9c683066-58b6-4008-97c3-02c7c686d632",
   "metadata": {},
   "source": [
    "### 直接合并"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "id": "9075dc39-9400-41db-9d3f-b714c624d420",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "SELECT\n",
    "    *\n",
    "FROM \n",
    "    credit AS TABLE_LEFT\n",
    "LEFT JOIN\n",
    "    credit_pivot AS TABLE_RIGHT \n",
    "ON TABLE_LEFT.ID = TABLE_RIGHT.ID\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "id": "9401652a-e812-4269-a4f3-8919d49b1736",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>TABLE_RIGHT.ID</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>0</td>\n",
       "      <td>X</td>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-2</td>\n",
       "      <td>0</td>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001712</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "      <td>5001712</td>\n",
       "      <td>-18</td>\n",
       "      <td>0</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048570</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-21</td>\n",
       "      <td>C</td>\n",
       "      <td>5150422</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048571</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-22</td>\n",
       "      <td>C</td>\n",
       "      <td>5150422</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048572</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-23</td>\n",
       "      <td>C</td>\n",
       "      <td>5150422</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048573</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-24</td>\n",
       "      <td>C</td>\n",
       "      <td>5150422</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048574</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-25</td>\n",
       "      <td>X</td>\n",
       "      <td>5150422</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1048575 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              ID  MONTHS_BALANCE STATUS  TABLE_RIGHT.ID  MIN_MONTH  MAX_MONTH  \\\n",
       "0        5001711               0      X         5001711         -3          0   \n",
       "1        5001711              -1      0         5001711         -3          0   \n",
       "2        5001711              -2      0         5001711         -3          0   \n",
       "3        5001711              -3      0         5001711         -3          0   \n",
       "4        5001712               0      C         5001712        -18          0   \n",
       "...          ...             ...    ...             ...        ...        ...   \n",
       "1048570  5150422             -21      C         5150422        -25          0   \n",
       "1048571  5150422             -22      C         5150422        -25          0   \n",
       "1048572  5150422             -23      C         5150422        -25          0   \n",
       "1048573  5150422             -24      C         5150422        -25          0   \n",
       "1048574  5150422             -25      X         5150422        -25          0   \n",
       "\n",
       "         PERIODS  \n",
       "0              3  \n",
       "1              3  \n",
       "2              3  \n",
       "3              3  \n",
       "4             18  \n",
       "...          ...  \n",
       "1048570       25  \n",
       "1048571       25  \n",
       "1048572       25  \n",
       "1048573       25  \n",
       "1048574       25  \n",
       "\n",
       "[1048575 rows x 7 columns]"
      ]
     },
     "execution_count": 133,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "425c3636-87c7-46e4-a4d4-2fb899150375",
   "metadata": {},
   "source": [
    "### 对比Pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "id": "d59926cf-fb1d-42ed-adb2-0dac70f54e23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>0</td>\n",
       "      <td>X</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-2</td>\n",
       "      <td>0</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001712</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "      <td>-18</td>\n",
       "      <td>0</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048570</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-25</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048571</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-26</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048572</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-27</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048573</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-28</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048574</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>C</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1048575 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS\n",
       "0        5001711               0      X         -3          0        3\n",
       "1        5001711              -1      0         -3          0        3\n",
       "2        5001711              -2      0         -3          0        3\n",
       "3        5001711              -3      0         -3          0        3\n",
       "4        5001712               0      C        -18          0       18\n",
       "...          ...             ...    ...        ...        ...      ...\n",
       "1048570  5150487             -25      C        -29          0       29\n",
       "1048571  5150487             -26      C        -29          0       29\n",
       "1048572  5150487             -27      C        -29          0       29\n",
       "1048573  5150487             -28      C        -29          0       29\n",
       "1048574  5150487             -29      C        -29          0       29\n",
       "\n",
       "[1048575 rows x 6 columns]"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_join_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a4cd0af8-c22d-4d6f-a071-2879becefcc8",
   "metadata": {},
   "source": [
    "### SQL注释"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 446,
   "id": "fb186ba0-44b2-4351-8e36-a9105a94582e",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "-- 该表的目的是给每条记录增加其最早放款时间、和放款最后结束时间，以及总时间，单位：月\n",
    "SELECT\n",
    "    *\n",
    "FROM \n",
    "    credit AS TABLE_LEFT -- 原记录表\n",
    "LEFT JOIN\n",
    "    credit_pivot AS TABLE_RIGHT -- 聚合后含时间的表\n",
    "ON TABLE_LEFT.ID = TABLE_RIGHT.ID\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 447,
   "id": "37b68f61-2cb1-4a96-b36d-a1d2a6f2c8d9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>TABLE_RIGHT.ID</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001711</td>\n",
       "      <td>0</td>\n",
       "      <td>X</td>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-2</td>\n",
       "      <td>0</td>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>5001711</td>\n",
       "      <td>-3</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001712</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "      <td>5001712</td>\n",
       "      <td>-18</td>\n",
       "      <td>0</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048570</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-25</td>\n",
       "      <td>C</td>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048571</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-26</td>\n",
       "      <td>C</td>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048572</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-27</td>\n",
       "      <td>C</td>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048573</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-28</td>\n",
       "      <td>C</td>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1048574</th>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>C</td>\n",
       "      <td>5150487</td>\n",
       "      <td>-29</td>\n",
       "      <td>0</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1048575 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              ID  MONTHS_BALANCE STATUS  TABLE_RIGHT.ID  MIN_MONTH  MAX_MONTH  \\\n",
       "0        5001711               0      X         5001711         -3          0   \n",
       "1        5001711              -1      0         5001711         -3          0   \n",
       "2        5001711              -2      0         5001711         -3          0   \n",
       "3        5001711              -3      0         5001711         -3          0   \n",
       "4        5001712               0      C         5001712        -18          0   \n",
       "...          ...             ...    ...             ...        ...        ...   \n",
       "1048570  5150487             -25      C         5150487        -29          0   \n",
       "1048571  5150487             -26      C         5150487        -29          0   \n",
       "1048572  5150487             -27      C         5150487        -29          0   \n",
       "1048573  5150487             -28      C         5150487        -29          0   \n",
       "1048574  5150487             -29      C         5150487        -29          0   \n",
       "\n",
       "         PERIODS  \n",
       "0              3  \n",
       "1              3  \n",
       "2              3  \n",
       "3              3  \n",
       "4             18  \n",
       "...          ...  \n",
       "1048570       29  \n",
       "1048571       29  \n",
       "1048572       29  \n",
       "1048573       29  \n",
       "1048574       29  \n",
       "\n",
       "[1048575 rows x 7 columns]"
      ]
     },
     "execution_count": 447,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2bf951e1-f4f0-4b28-b6c8-e516d1934bad",
   "metadata": {},
   "source": [
    "## 保存合并表"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "97f3335f-0544-41ab-8387-6557d4110db8",
   "metadata": {},
   "source": [
    "这里我们要保留过滤前的数据，但是在SQL中没有内存概念，所以我们得先把之前的表保存"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2230280d-9978-4637-9e03-932141f16d56",
   "metadata": {},
   "source": [
    "### 保存和换行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "id": "263d2a97-dc92-4a5a-a836-a6a20081a647",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "-- 该表的目的是给每条记录增加其最早放款时间、和放款最后结束时间，以及总时间，单位：月\n",
    "CREATE TABLE IF NOT EXISTS credit_join AS\n",
    "SELECT\n",
    "    *\n",
    "FROM \n",
    "    credit AS TABLE_LEFT -- 原记录表\n",
    "LEFT JOIN\n",
    "    credit_pivot AS TABLE_RIGHT -- 聚合后含时间的表\n",
    "ON TABLE_LEFT.ID = TABLE_RIGHT.ID\n",
    "'''"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4b34d44e-9ccb-4f32-b4bc-93d4b8dffbd8",
   "metadata": {},
   "source": [
    "### 重复ID的问题"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "39e20ff7-b5a1-423b-8c1b-b7213c5b92f1",
   "metadata": {},
   "source": [
    "查询时不会报错，但是形成新表的时候就有问题"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "id": "40250dec-0b8e-4f7b-9d36-7a5a8326040e",
   "metadata": {},
   "outputs": [
    {
     "ename": "OperationalError",
     "evalue": "(1060, \"Duplicate column name 'ID'\")",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mOperationalError\u001b[0m                          Traceback (most recent call last)",
      "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_14224/354238445.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mcursor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msql\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[0mdf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcursor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfetchall\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\conda\\lib\\site-packages\\pymysql\\cursors.py\u001b[0m in \u001b[0;36mexecute\u001b[1;34m(self, query, args)\u001b[0m\n\u001b[0;32m    146\u001b[0m         \u001b[0mquery\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmogrify\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mquery\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    147\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 148\u001b[1;33m         \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_query\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mquery\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    149\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_executed\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mquery\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    150\u001b[0m         \u001b[1;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\conda\\lib\\site-packages\\pymysql\\cursors.py\u001b[0m in \u001b[0;36m_query\u001b[1;34m(self, q)\u001b[0m\n\u001b[0;32m    308\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_last_executed\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mq\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    309\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_clear_result\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 310\u001b[1;33m         \u001b[0mconn\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mquery\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mq\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    311\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_do_get_result\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    312\u001b[0m         \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrowcount\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\conda\\lib\\site-packages\\pymysql\\connections.py\u001b[0m in \u001b[0;36mquery\u001b[1;34m(self, sql, unbuffered)\u001b[0m\n\u001b[0;32m    546\u001b[0m             \u001b[0msql\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msql\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mencode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mencoding\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"surrogateescape\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    547\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_execute_command\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mCOMMAND\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mCOM_QUERY\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msql\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 548\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_affected_rows\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_read_query_result\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0munbuffered\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0munbuffered\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    549\u001b[0m         \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_affected_rows\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    550\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\conda\\lib\\site-packages\\pymysql\\connections.py\u001b[0m in \u001b[0;36m_read_query_result\u001b[1;34m(self, unbuffered)\u001b[0m\n\u001b[0;32m    773\u001b[0m         \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    774\u001b[0m             \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mMySQLResult\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 775\u001b[1;33m             \u001b[0mresult\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    776\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_result\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mresult\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    777\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mresult\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mserver_status\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\conda\\lib\\site-packages\\pymysql\\connections.py\u001b[0m in \u001b[0;36mread\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m   1154\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1155\u001b[0m         \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1156\u001b[1;33m             \u001b[0mfirst_packet\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconnection\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_read_packet\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1157\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1158\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mfirst_packet\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mis_ok_packet\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\conda\\lib\\site-packages\\pymysql\\connections.py\u001b[0m in \u001b[0;36m_read_packet\u001b[1;34m(self, packet_type)\u001b[0m\n\u001b[0;32m    723\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_result\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_result\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munbuffered_active\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    724\u001b[0m                 \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_result\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munbuffered_active\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mFalse\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 725\u001b[1;33m             \u001b[0mpacket\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mraise_for_error\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    726\u001b[0m         \u001b[1;32mreturn\u001b[0m \u001b[0mpacket\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    727\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\conda\\lib\\site-packages\\pymysql\\protocol.py\u001b[0m in \u001b[0;36mraise_for_error\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    219\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mDEBUG\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    220\u001b[0m             \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"errno =\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0merrno\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 221\u001b[1;33m         \u001b[0merr\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mraise_mysql_exception\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    222\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    223\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0mdump\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\conda\\lib\\site-packages\\pymysql\\err.py\u001b[0m in \u001b[0;36mraise_mysql_exception\u001b[1;34m(data)\u001b[0m\n\u001b[0;32m    141\u001b[0m     \u001b[1;32mif\u001b[0m \u001b[0merrorclass\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    142\u001b[0m         \u001b[0merrorclass\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mInternalError\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0merrno\u001b[0m \u001b[1;33m<\u001b[0m \u001b[1;36m1000\u001b[0m \u001b[1;32melse\u001b[0m \u001b[0mOperationalError\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 143\u001b[1;33m     \u001b[1;32mraise\u001b[0m \u001b[0merrorclass\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0merrno\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0merrval\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mOperationalError\u001b[0m: (1060, \"Duplicate column name 'ID'\")"
     ]
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f5d24736-6269-48b3-8d15-c0107b6cf055",
   "metadata": {
    "tags": []
   },
   "source": [
    "### SQL的通配符"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0b80b757-fe9b-401b-92f4-e9e0e4765333",
   "metadata": {},
   "source": [
    "\\* rn+ 等等，这里不列举"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "id": "0c77b003-e34d-4bde-b01b-7d65d143a0c9",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "-- 该表的目的是给每条记录增加其最早放款时间、和放款最后结束时间，以及总时间，单位：月\n",
    "CREATE TABLE IF NOT EXISTS credit_join AS \n",
    "SELECT\n",
    "    TABLE_LEFT.*\n",
    "    ,TABLE_RIGHT.MIN_MONTH\n",
    "    ,TABLE_RIGHT.MAX_MONTH\n",
    "    ,TABLE_RIGHT.PERIODS\n",
    "FROM \n",
    "    credit AS TABLE_LEFT -- 原记录表\n",
    "LEFT JOIN\n",
    "    credit_pivot AS TABLE_RIGHT -- 聚合后含时间的表\n",
    "ON TABLE_LEFT.ID = TABLE_RIGHT.ID\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "id": "115fcae9-cd7a-4e66-9bc4-b08c76dea227",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: []\n",
       "Index: []"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2dd2a6b3-fa5e-48e3-8dcf-96b39d46dfb7",
   "metadata": {},
   "source": [
    "### 删除表 - DROP EXISTS"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8e310295-80fe-4516-af6e-a35420a3063c",
   "metadata": {},
   "source": [
    "不要和原语句写在一起，这里执行只能一句一句来"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 514,
   "id": "814782cd-f4c8-40d3-8632-04219186b241",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "DROP TABLE IF EXISTS credit_join\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 515,
   "id": "10161668-69ca-45f4-8e46-bae4c9db1210",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: []\n",
       "Index: []"
      ]
     },
     "execution_count": 515,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c0a9c2c1-bbfa-4d37-91e7-c288b03f9e76",
   "metadata": {},
   "source": [
    "## 过滤表准备"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c94bd6d5-efb7-4f82-bf8a-530fb81dc19d",
   "metadata": {},
   "source": [
    "### 窗口期过滤 -WHERE"
   ]
  },
  {
   "cell_type": "raw",
   "id": "df1cd740-c858-4c2d-8a12-e5a75791e7fa",
   "metadata": {},
   "source": [
    "# 窗口期太小的不参与分析\n",
    "credit_filter_df = credit_join_df[credit_join_df['PERIODS'] > 20]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "id": "77e86d5e-0504-45c7-8de1-e2998a4c07e8",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "SELECT\n",
    "    *\n",
    "FROM \n",
    "    credit_join \n",
    "WHERE PERIODS > 20\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "id": "c091bc44-f66e-4d29-bfe2-978e3949608d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001713</td>\n",
       "      <td>0</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-1</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-2</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-3</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-4</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775277</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-21</td>\n",
       "      <td>C</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775278</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-22</td>\n",
       "      <td>C</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775279</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-23</td>\n",
       "      <td>C</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775280</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-24</td>\n",
       "      <td>C</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775281</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-25</td>\n",
       "      <td>X</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>775282 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS\n",
       "0       5001713               0      X        -21          0       21\n",
       "1       5001713              -1      X        -21          0       21\n",
       "2       5001713              -2      X        -21          0       21\n",
       "3       5001713              -3      X        -21          0       21\n",
       "4       5001713              -4      X        -21          0       21\n",
       "...         ...             ...    ...        ...        ...      ...\n",
       "775277  5150422             -21      C        -25          0       25\n",
       "775278  5150422             -22      C        -25          0       25\n",
       "775279  5150422             -23      C        -25          0       25\n",
       "775280  5150422             -24      C        -25          0       25\n",
       "775281  5150422             -25      X        -25          0       25\n",
       "\n",
       "[775282 rows x 6 columns]"
      ]
     },
     "execution_count": 142,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8bacc79a-ac2b-42ab-88cc-2cb000625d18",
   "metadata": {
    "tags": []
   },
   "source": [
    "### 逾期字段生成 -- CASE WHEN"
   ]
  },
  {
   "cell_type": "raw",
   "id": "a90f1591-9bfc-44af-bd93-b0b33269303a",
   "metadata": {},
   "source": [
    "credit_filter_df['OVERDUE'] = credit_filter_df['STATUS'].isin(['2', '3', '4', '5']).astype(int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "id": "4bd35c6b-282d-4f58-a84c-eadecfd3737b",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "SELECT\n",
    "    *\n",
    "    ,CASE WHEN STATUS IN ('2', '3', '4', '5') THEN 1\n",
    "        ELSE 0 END AS OVERDUE\n",
    "FROM \n",
    "    credit_join \n",
    "WHERE PERIODS > 20\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "id": "6e1d524f-a5b9-401b-b293-3e822e09f6a7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "      <th>OVERDUE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5001713</td>\n",
       "      <td>0</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-1</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-2</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-3</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5001713</td>\n",
       "      <td>-4</td>\n",
       "      <td>X</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775277</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-21</td>\n",
       "      <td>C</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775278</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-22</td>\n",
       "      <td>C</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775279</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-23</td>\n",
       "      <td>C</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775280</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-24</td>\n",
       "      <td>C</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775281</th>\n",
       "      <td>5150422</td>\n",
       "      <td>-25</td>\n",
       "      <td>X</td>\n",
       "      <td>-25</td>\n",
       "      <td>0</td>\n",
       "      <td>25</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>775282 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS  OVERDUE\n",
       "0       5001713               0      X        -21          0       21        0\n",
       "1       5001713              -1      X        -21          0       21        0\n",
       "2       5001713              -2      X        -21          0       21        0\n",
       "3       5001713              -3      X        -21          0       21        0\n",
       "4       5001713              -4      X        -21          0       21        0\n",
       "...         ...             ...    ...        ...        ...      ...      ...\n",
       "775277  5150422             -21      C        -25          0       25        0\n",
       "775278  5150422             -22      C        -25          0       25        0\n",
       "775279  5150422             -23      C        -25          0       25        0\n",
       "775280  5150422             -24      C        -25          0       25        0\n",
       "775281  5150422             -25      X        -25          0       25        0\n",
       "\n",
       "[775282 rows x 7 columns]"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "id": "ccca1fb1-1cdf-4503-a7fb-6d98bd6525cd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "      <th>OVERDUE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>7336</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-46</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7337</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-47</td>\n",
       "      <td>3</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7338</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-48</td>\n",
       "      <td>3</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7339</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-49</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7340</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-50</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>774873</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-21</td>\n",
       "      <td>4</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>774874</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-22</td>\n",
       "      <td>3</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>774875</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-23</td>\n",
       "      <td>2</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>774876</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-24</td>\n",
       "      <td>2</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>775150</th>\n",
       "      <td>5150238</td>\n",
       "      <td>-5</td>\n",
       "      <td>2</td>\n",
       "      <td>-53</td>\n",
       "      <td>0</td>\n",
       "      <td>53</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2537 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS  OVERDUE\n",
       "7336    5002126             -46      2        -55          0       55        1\n",
       "7337    5002126             -47      3        -55          0       55        1\n",
       "7338    5002126             -48      3        -55          0       55        1\n",
       "7339    5002126             -49      2        -55          0       55        1\n",
       "7340    5002126             -50      2        -55          0       55        1\n",
       "...         ...             ...    ...        ...        ...      ...      ...\n",
       "774873  5149838             -21      4        -32          0       32        1\n",
       "774874  5149838             -22      3        -32          0       32        1\n",
       "774875  5149838             -23      2        -32          0       32        1\n",
       "774876  5149838             -24      2        -32          0       32        1\n",
       "775150  5150238              -5      2        -53          0       53        1\n",
       "\n",
       "[2537 rows x 7 columns]"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df['OVERDUE']==1]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f07873ed-e107-4d9b-8c71-11ce76ad82af",
   "metadata": {},
   "source": [
    "### MOB字段生成和表保存-ORDER BY"
   ]
  },
  {
   "cell_type": "raw",
   "id": "a96751fe-4882-4abf-b7f6-2155bfb2e854",
   "metadata": {},
   "source": [
    "# 计算每个账单在不同月份是第几期，所以用其当前所在月-开始月\n",
    "credit_filter_df['MOB'] = credit_filter_df['MONTHS_BALANCE'] - credit_filter_df['MIN_MONTH']\n",
    "credit_filter_df = credit_filter_df.sort_values(by = ['ID','MOB'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "id": "79b62669-a5e8-4db3-a282-037328b011ba",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "CREATE TABLE IF NOT EXISTS credit_filter AS \n",
    "SELECT\n",
    "    *\n",
    "    ,CASE WHEN STATUS IN ('2', '3', '4', '5') THEN 1\n",
    "        ELSE 0 END AS OVERDUE\n",
    "    ,MONTHS_BALANCE - MIN_MONTH AS MOB\n",
    "FROM \n",
    "    credit_join \n",
    "WHERE PERIODS > 20\n",
    "ORDER BY ID ASC, MOB ASC\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "id": "097ad0e4-9bb1-4e19-9af2-70f423030566",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: []\n",
       "Index: []"
      ]
     },
     "execution_count": 147,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec57ef9e-6be6-4875-a2cb-adc5617edcec",
   "metadata": {},
   "source": [
    "## vintage构造"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b38963ba-64cf-4935-849d-036346fe688c",
   "metadata": {},
   "source": [
    "### 统计 每个月 x 每个MOB 的贷款数量"
   ]
  },
  {
   "cell_type": "raw",
   "id": "df86d8e0-caa7-4dff-8447-2076f34ce23a",
   "metadata": {},
   "source": [
    "vintage_df = credit_filter_df.groupby(['MIN_MONTH','MOB']).agg({'ID': ['count']}) \n",
    "vintage_df = vintage_df.reset_index()\n",
    "vintage_df.columns = ['MIN_MONTH','MOB','OVERDUE_RATIO'] \n",
    "vintage_df['OVERDUE_RATIO'] = np.nan"
   ]
  },
  {
   "cell_type": "raw",
   "id": "39840c2b-0244-4870-85c9-1eaa9611b291",
   "metadata": {},
   "source": [
    "# 统计每个月的新放贷款数量，应该看的是MIN_MONTH，这里要去重，所以用之前的pivot表\n",
    "denominator_df = credit_pivot_df.groupby(['MIN_MONTH']).agg({'ID': ['count']}) \n",
    "denominator_df.reset_index(inplace = True)\n",
    "denominator_df.columns = ['MIN_MONTH', 'LENDING_COUNT']\n",
    "denominator_df"
   ]
  },
  {
   "cell_type": "raw",
   "id": "7ed3c24e-7a14-4420-a001-f4602b0e4b45",
   "metadata": {},
   "source": [
    "# 合并，给每个MOB都增加了一列其对应月份的贷款数量\n",
    "# 但是注意\n",
    "vintage_df = pd.merge(vintage_df, denominator_df, on = ['MIN_MONTH'], how = 'left') \n",
    "vintage_df = vintage_df.set_index(['MIN_MONTH', 'MOB'])\n",
    "vintage_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "id": "7f33049b-a877-478f-b81c-04e9c5ef6077",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 只是借group by 生成索引\n",
    "sql = '''\n",
    "SELECT\n",
    "    B.*\n",
    "    ,C.LENDING_COUNT\n",
    "FROM \n",
    "    (SELECT \n",
    "        MIN_MONTH\n",
    "        ,MOB\n",
    "    FROM \n",
    "        credit_filter\n",
    "    GROUP BY \n",
    "        MIN_MONTH, MOB) AS B\n",
    "LEFT JOIN \n",
    "    (SELECT\n",
    "        MIN_MONTH\n",
    "        ,COUNT(*) AS LENDING_COUNT\n",
    "    FROM \n",
    "        credit_pivot\n",
    "    GROUP BY \n",
    "        MIN_MONTH) AS C\n",
    "ON B.MIN_MONTH = C.MIN_MONTH\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "id": "2c351ff6-c257-4e1a-8e8f-3f51592d8900",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MOB</th>\n",
       "      <th>LENDING_COUNT</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-21</td>\n",
       "      <td>1</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-21</td>\n",
       "      <td>2</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-21</td>\n",
       "      <td>3</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-21</td>\n",
       "      <td>4</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1655</th>\n",
       "      <td>-44</td>\n",
       "      <td>40</td>\n",
       "      <td>591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1656</th>\n",
       "      <td>-44</td>\n",
       "      <td>41</td>\n",
       "      <td>591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1657</th>\n",
       "      <td>-44</td>\n",
       "      <td>42</td>\n",
       "      <td>591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1658</th>\n",
       "      <td>-44</td>\n",
       "      <td>43</td>\n",
       "      <td>591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1659</th>\n",
       "      <td>-44</td>\n",
       "      <td>44</td>\n",
       "      <td>591</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1660 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      MIN_MONTH  MOB  LENDING_COUNT\n",
       "0           -21    0            858\n",
       "1           -21    1            858\n",
       "2           -21    2            858\n",
       "3           -21    3            858\n",
       "4           -21    4            858\n",
       "...         ...  ...            ...\n",
       "1655        -44   40            591\n",
       "1656        -44   41            591\n",
       "1657        -44   42            591\n",
       "1658        -44   43            591\n",
       "1659        -44   44            591\n",
       "\n",
       "[1660 rows x 3 columns]"
      ]
     },
     "execution_count": 149,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "65b91b55-4428-4260-adbd-c30cbb4e5f36",
   "metadata": {},
   "source": [
    "#### 保存统计表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "id": "10b1fd87-2215-4ade-9ee8-00795d90b514",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 只是借group by 生成索引\n",
    "sql = '''\n",
    "CREATE TABLE IF NOT EXISTS mob_count AS \n",
    "SELECT\n",
    "    B.*\n",
    "    ,C.LENDING_COUNT\n",
    "FROM \n",
    "    (SELECT \n",
    "        MIN_MONTH\n",
    "        ,MOB\n",
    "    FROM \n",
    "        credit_filter\n",
    "    GROUP BY \n",
    "        MIN_MONTH, MOB) AS B\n",
    "LEFT JOIN \n",
    "    (SELECT\n",
    "        MIN_MONTH\n",
    "        ,COUNT(*) AS LENDING_COUNT\n",
    "    FROM \n",
    "        credit_pivot\n",
    "    GROUP BY \n",
    "        MIN_MONTH) AS C\n",
    "ON B.MIN_MONTH = C.MIN_MONTH\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "id": "6743bd31-047f-42b9-a6d4-84abe802dd85",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: []\n",
       "Index: []"
      ]
     },
     "execution_count": 151,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2f1b6998-e3a5-4c75-a2ac-2d825f42f80f",
   "metadata": {},
   "source": [
    "### 统计 每个月 x 每个MOB的逾期个数"
   ]
  },
  {
   "cell_type": "raw",
   "id": "b6ce8bea-48d1-4c39-ab10-ddb284290f7b",
   "metadata": {},
   "source": [
    "# 1个人可能在10个月前贷款，然后过4月逾期1次，还完了后，过2个月又逾期，所以会有两笔，要去重\n",
    "overdue_credit_df = credit_filter_df[credit_filter_df['OVERDUE'] == 1]\n",
    "overdue_credit_df = overdue_credit_df.sort_values(by=['ID', 'MOB']).drop_duplicates(subset=['ID'], keep='first')\n",
    "overdue_group_df = overdue_credit_df.groupby(['MIN_MONTH', 'MOB']).count()['ID']\n",
    "overdue_group_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1a11f26a-230b-499f-a7c7-20078a90de97",
   "metadata": {
    "tags": []
   },
   "source": [
    "#### 生成行数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "id": "2f550080-a623-4da8-af1d-beeea053a2f5",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "SELECT \n",
    "    *\n",
    "    ,ROW_NUMBER() OVER(PARTITION BY ID ORDER BY MOB ASC) AS rn\n",
    "FROM credit_filter\n",
    "WHERE OVERDUE = 1\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "id": "d7b70164-0560-41f4-8fa6-6ce4aabe6ee1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "      <th>OVERDUE</th>\n",
       "      <th>MOB</th>\n",
       "      <th>rn</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-50</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-49</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-48</td>\n",
       "      <td>3</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-47</td>\n",
       "      <td>3</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-46</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2532</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-17</td>\n",
       "      <td>5</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "      <td>15</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2533</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-16</td>\n",
       "      <td>5</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2534</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-15</td>\n",
       "      <td>5</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "      <td>17</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2535</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-14</td>\n",
       "      <td>5</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "      <td>18</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2536</th>\n",
       "      <td>5150238</td>\n",
       "      <td>-5</td>\n",
       "      <td>2</td>\n",
       "      <td>-53</td>\n",
       "      <td>0</td>\n",
       "      <td>53</td>\n",
       "      <td>1</td>\n",
       "      <td>48</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2537 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS  OVERDUE  \\\n",
       "0     5002126             -50      2        -55          0       55        1   \n",
       "1     5002126             -49      2        -55          0       55        1   \n",
       "2     5002126             -48      3        -55          0       55        1   \n",
       "3     5002126             -47      3        -55          0       55        1   \n",
       "4     5002126             -46      2        -55          0       55        1   \n",
       "...       ...             ...    ...        ...        ...      ...      ...   \n",
       "2532  5149838             -17      5        -32          0       32        1   \n",
       "2533  5149838             -16      5        -32          0       32        1   \n",
       "2534  5149838             -15      5        -32          0       32        1   \n",
       "2535  5149838             -14      5        -32          0       32        1   \n",
       "2536  5150238              -5      2        -53          0       53        1   \n",
       "\n",
       "      MOB  rn  \n",
       "0       5   1  \n",
       "1       6   2  \n",
       "2       7   3  \n",
       "3       8   4  \n",
       "4       9   5  \n",
       "...   ...  ..  \n",
       "2532   15   8  \n",
       "2533   16   9  \n",
       "2534   17  10  \n",
       "2535   18  11  \n",
       "2536   48   1  \n",
       "\n",
       "[2537 rows x 9 columns]"
      ]
     },
     "execution_count": 153,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "id": "f7e1df96-3751-49b3-a02a-59eb5bd27df8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "      <th>OVERDUE</th>\n",
       "      <th>MOB</th>\n",
       "      <th>rn</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-50</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-49</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-48</td>\n",
       "      <td>3</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-47</td>\n",
       "      <td>3</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-46</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5002255</td>\n",
       "      <td>-4</td>\n",
       "      <td>2</td>\n",
       "      <td>-37</td>\n",
       "      <td>0</td>\n",
       "      <td>37</td>\n",
       "      <td>1</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>5002283</td>\n",
       "      <td>-48</td>\n",
       "      <td>2</td>\n",
       "      <td>-60</td>\n",
       "      <td>0</td>\n",
       "      <td>60</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>5002303</td>\n",
       "      <td>-10</td>\n",
       "      <td>2</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>5002303</td>\n",
       "      <td>-9</td>\n",
       "      <td>2</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>5002380</td>\n",
       "      <td>-5</td>\n",
       "      <td>2</td>\n",
       "      <td>-56</td>\n",
       "      <td>0</td>\n",
       "      <td>56</td>\n",
       "      <td>1</td>\n",
       "      <td>51</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>5002642</td>\n",
       "      <td>-25</td>\n",
       "      <td>2</td>\n",
       "      <td>-34</td>\n",
       "      <td>0</td>\n",
       "      <td>34</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>5002717</td>\n",
       "      <td>-16</td>\n",
       "      <td>2</td>\n",
       "      <td>-57</td>\n",
       "      <td>0</td>\n",
       "      <td>57</td>\n",
       "      <td>1</td>\n",
       "      <td>41</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>5002795</td>\n",
       "      <td>-50</td>\n",
       "      <td>2</td>\n",
       "      <td>-57</td>\n",
       "      <td>0</td>\n",
       "      <td>57</td>\n",
       "      <td>1</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>5003267</td>\n",
       "      <td>-52</td>\n",
       "      <td>2</td>\n",
       "      <td>-53</td>\n",
       "      <td>0</td>\n",
       "      <td>53</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>5003267</td>\n",
       "      <td>-51</td>\n",
       "      <td>3</td>\n",
       "      <td>-53</td>\n",
       "      <td>0</td>\n",
       "      <td>53</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>5003267</td>\n",
       "      <td>-50</td>\n",
       "      <td>3</td>\n",
       "      <td>-53</td>\n",
       "      <td>0</td>\n",
       "      <td>53</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>5003471</td>\n",
       "      <td>-41</td>\n",
       "      <td>2</td>\n",
       "      <td>-47</td>\n",
       "      <td>0</td>\n",
       "      <td>47</td>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>5003471</td>\n",
       "      <td>-39</td>\n",
       "      <td>4</td>\n",
       "      <td>-47</td>\n",
       "      <td>0</td>\n",
       "      <td>47</td>\n",
       "      <td>1</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>5003712</td>\n",
       "      <td>-24</td>\n",
       "      <td>2</td>\n",
       "      <td>-37</td>\n",
       "      <td>0</td>\n",
       "      <td>37</td>\n",
       "      <td>1</td>\n",
       "      <td>13</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>5003712</td>\n",
       "      <td>-23</td>\n",
       "      <td>3</td>\n",
       "      <td>-37</td>\n",
       "      <td>0</td>\n",
       "      <td>37</td>\n",
       "      <td>1</td>\n",
       "      <td>14</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>5003804</td>\n",
       "      <td>-45</td>\n",
       "      <td>2</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>5003804</td>\n",
       "      <td>-44</td>\n",
       "      <td>3</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>5003804</td>\n",
       "      <td>-43</td>\n",
       "      <td>4</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>11</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>5003804</td>\n",
       "      <td>-42</td>\n",
       "      <td>5</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>5003804</td>\n",
       "      <td>-41</td>\n",
       "      <td>5</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>13</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>5003804</td>\n",
       "      <td>-40</td>\n",
       "      <td>5</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>14</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>5003804</td>\n",
       "      <td>-39</td>\n",
       "      <td>5</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>15</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>5003804</td>\n",
       "      <td>-38</td>\n",
       "      <td>5</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>5003804</td>\n",
       "      <td>-37</td>\n",
       "      <td>5</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>17</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>5003804</td>\n",
       "      <td>-36</td>\n",
       "      <td>5</td>\n",
       "      <td>-54</td>\n",
       "      <td>0</td>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>18</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS  OVERDUE  \\\n",
       "0   5002126             -50      2        -55          0       55        1   \n",
       "1   5002126             -49      2        -55          0       55        1   \n",
       "2   5002126             -48      3        -55          0       55        1   \n",
       "3   5002126             -47      3        -55          0       55        1   \n",
       "4   5002126             -46      2        -55          0       55        1   \n",
       "5   5002255              -4      2        -37          0       37        1   \n",
       "6   5002283             -48      2        -60          0       60        1   \n",
       "7   5002303             -10      2        -21          0       21        1   \n",
       "8   5002303              -9      2        -21          0       21        1   \n",
       "9   5002380              -5      2        -56          0       56        1   \n",
       "10  5002642             -25      2        -34          0       34        1   \n",
       "11  5002717             -16      2        -57          0       57        1   \n",
       "12  5002795             -50      2        -57          0       57        1   \n",
       "13  5003267             -52      2        -53          0       53        1   \n",
       "14  5003267             -51      3        -53          0       53        1   \n",
       "15  5003267             -50      3        -53          0       53        1   \n",
       "16  5003471             -41      2        -47          0       47        1   \n",
       "17  5003471             -39      4        -47          0       47        1   \n",
       "18  5003712             -24      2        -37          0       37        1   \n",
       "19  5003712             -23      3        -37          0       37        1   \n",
       "20  5003804             -45      2        -54          0       54        1   \n",
       "21  5003804             -44      3        -54          0       54        1   \n",
       "22  5003804             -43      4        -54          0       54        1   \n",
       "23  5003804             -42      5        -54          0       54        1   \n",
       "24  5003804             -41      5        -54          0       54        1   \n",
       "25  5003804             -40      5        -54          0       54        1   \n",
       "26  5003804             -39      5        -54          0       54        1   \n",
       "27  5003804             -38      5        -54          0       54        1   \n",
       "28  5003804             -37      5        -54          0       54        1   \n",
       "29  5003804             -36      5        -54          0       54        1   \n",
       "\n",
       "    MOB  rn  \n",
       "0     5   1  \n",
       "1     6   2  \n",
       "2     7   3  \n",
       "3     8   4  \n",
       "4     9   5  \n",
       "5    33   1  \n",
       "6    12   1  \n",
       "7    11   1  \n",
       "8    12   2  \n",
       "9    51   1  \n",
       "10    9   1  \n",
       "11   41   1  \n",
       "12    7   1  \n",
       "13    1   1  \n",
       "14    2   2  \n",
       "15    3   3  \n",
       "16    6   1  \n",
       "17    8   2  \n",
       "18   13   1  \n",
       "19   14   2  \n",
       "20    9   1  \n",
       "21   10   2  \n",
       "22   11   3  \n",
       "23   12   4  \n",
       "24   13   5  \n",
       "25   14   6  \n",
       "26   15   7  \n",
       "27   16   8  \n",
       "28   17   9  \n",
       "29   18  10  "
      ]
     },
     "execution_count": 154,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sort_values(by=['ID', 'MOB']).head(30)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a0c1180e-c1ae-42c7-be21-3c27d4747ce7",
   "metadata": {},
   "source": [
    "#### 选择第1行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "id": "12429d61-255e-463f-9451-92484362ada2",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "SELECT\n",
    "    *\n",
    "FROM\n",
    "    (SELECT \n",
    "        *\n",
    "        ,ROW_NUMBER() OVER(PARTITION BY ID ORDER BY MOB ASC) AS rn\n",
    "    FROM  credit_filter\n",
    "    WHERE OVERDUE = 1) AS T\n",
    "WHERE T.rn = 1\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "id": "ac4ff52d-0a7d-4704-96f8-70a343fd219f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>STATUS</th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MAX_MONTH</th>\n",
       "      <th>PERIODS</th>\n",
       "      <th>OVERDUE</th>\n",
       "      <th>MOB</th>\n",
       "      <th>rn</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5002126</td>\n",
       "      <td>-50</td>\n",
       "      <td>2</td>\n",
       "      <td>-55</td>\n",
       "      <td>0</td>\n",
       "      <td>55</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5002255</td>\n",
       "      <td>-4</td>\n",
       "      <td>2</td>\n",
       "      <td>-37</td>\n",
       "      <td>0</td>\n",
       "      <td>37</td>\n",
       "      <td>1</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5002283</td>\n",
       "      <td>-48</td>\n",
       "      <td>2</td>\n",
       "      <td>-60</td>\n",
       "      <td>0</td>\n",
       "      <td>60</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5002303</td>\n",
       "      <td>-10</td>\n",
       "      <td>2</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5002380</td>\n",
       "      <td>-5</td>\n",
       "      <td>2</td>\n",
       "      <td>-56</td>\n",
       "      <td>0</td>\n",
       "      <td>56</td>\n",
       "      <td>1</td>\n",
       "      <td>51</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>487</th>\n",
       "      <td>5149729</td>\n",
       "      <td>-18</td>\n",
       "      <td>2</td>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>488</th>\n",
       "      <td>5149730</td>\n",
       "      <td>-31</td>\n",
       "      <td>2</td>\n",
       "      <td>-43</td>\n",
       "      <td>-21</td>\n",
       "      <td>22</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>489</th>\n",
       "      <td>5149834</td>\n",
       "      <td>-15</td>\n",
       "      <td>2</td>\n",
       "      <td>-23</td>\n",
       "      <td>0</td>\n",
       "      <td>23</td>\n",
       "      <td>1</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>490</th>\n",
       "      <td>5149838</td>\n",
       "      <td>-24</td>\n",
       "      <td>2</td>\n",
       "      <td>-32</td>\n",
       "      <td>0</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>491</th>\n",
       "      <td>5150238</td>\n",
       "      <td>-5</td>\n",
       "      <td>2</td>\n",
       "      <td>-53</td>\n",
       "      <td>0</td>\n",
       "      <td>53</td>\n",
       "      <td>1</td>\n",
       "      <td>48</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>492 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          ID  MONTHS_BALANCE STATUS  MIN_MONTH  MAX_MONTH  PERIODS  OVERDUE  \\\n",
       "0    5002126             -50      2        -55          0       55        1   \n",
       "1    5002255              -4      2        -37          0       37        1   \n",
       "2    5002283             -48      2        -60          0       60        1   \n",
       "3    5002303             -10      2        -21          0       21        1   \n",
       "4    5002380              -5      2        -56          0       56        1   \n",
       "..       ...             ...    ...        ...        ...      ...      ...   \n",
       "487  5149729             -18      2        -21          0       21        1   \n",
       "488  5149730             -31      2        -43        -21       22        1   \n",
       "489  5149834             -15      2        -23          0       23        1   \n",
       "490  5149838             -24      2        -32          0       32        1   \n",
       "491  5150238              -5      2        -53          0       53        1   \n",
       "\n",
       "     MOB  rn  \n",
       "0      5   1  \n",
       "1     33   1  \n",
       "2     12   1  \n",
       "3     11   1  \n",
       "4     51   1  \n",
       "..   ...  ..  \n",
       "487    3   1  \n",
       "488   12   1  \n",
       "489    8   1  \n",
       "490    8   1  \n",
       "491   48   1  \n",
       "\n",
       "[492 rows x 9 columns]"
      ]
     },
     "execution_count": 156,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bb91f97b-2824-4c8b-94c6-afa625ec294e",
   "metadata": {},
   "source": [
    "#### 聚合统计"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "id": "1f47e883-2416-4d90-b64f-6341ca3665d9",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "SELECT\n",
    "    MIN_MONTH\n",
    "    ,MOB\n",
    "    ,COUNT(ID) AS CNT\n",
    "FROM\n",
    "    (SELECT \n",
    "        *\n",
    "        ,ROW_NUMBER() OVER(PARTITION BY ID ORDER BY MOB ASC) AS rn\n",
    "    FROM  credit_filter\n",
    "    WHERE OVERDUE = 1) AS T\n",
    "WHERE T.rn = 1\n",
    "GROUP BY MIN_MONTH, MOB\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "id": "11d6c105-63a5-4e40-95da-e5bba277b20a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MOB</th>\n",
       "      <th>CNT</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-55</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-37</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-60</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-21</td>\n",
       "      <td>11</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-56</td>\n",
       "      <td>51</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>360</th>\n",
       "      <td>-28</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>361</th>\n",
       "      <td>-59</td>\n",
       "      <td>18</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>362</th>\n",
       "      <td>-43</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>363</th>\n",
       "      <td>-23</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>364</th>\n",
       "      <td>-53</td>\n",
       "      <td>48</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>365 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     MIN_MONTH  MOB  CNT\n",
       "0          -55    5    2\n",
       "1          -37   33    1\n",
       "2          -60   12    1\n",
       "3          -21   11    2\n",
       "4          -56   51    1\n",
       "..         ...  ...  ...\n",
       "360        -28    5    1\n",
       "361        -59   18    1\n",
       "362        -43   12    1\n",
       "363        -23    8    1\n",
       "364        -53   48    1\n",
       "\n",
       "[365 rows x 3 columns]"
      ]
     },
     "execution_count": 158,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "43fcdfb8-5dad-4aae-8fa7-c1b4c8b2fcb1",
   "metadata": {},
   "source": [
    "#### 保存统计表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "id": "611f7ac9-6df9-4d85-b4c5-6111195180ee",
   "metadata": {},
   "outputs": [],
   "source": [
    "sql = '''\n",
    "CREATE TABLE IF NOT EXISTS overdue_group AS \n",
    "SELECT\n",
    "    MIN_MONTH\n",
    "    ,MOB\n",
    "    ,COUNT(ID) AS CNT\n",
    "FROM\n",
    "    (SELECT \n",
    "        *\n",
    "        ,ROW_NUMBER() OVER(PARTITION BY ID ORDER BY MOB ASC) AS rn\n",
    "    FROM  credit_filter\n",
    "    WHERE OVERDUE = 1) AS T\n",
    "WHERE T.rn = 1\n",
    "GROUP BY MIN_MONTH, MOB\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "id": "0a95a8ec-4b2b-4cf3-8855-07e463eed39e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: []\n",
       "Index: []"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute(sql)\n",
    "df = pd.DataFrame(cursor.fetchall())\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0ddbfa66-4a49-402f-b1c7-4538834ea641",
   "metadata": {},
   "source": [
    "## Python分析"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d439f614-3699-4dcd-8776-b2f06bbad16b",
   "metadata": {},
   "source": [
    "### 数据读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "id": "2b701492-00ce-45b9-846c-3579a1274ce2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MOB</th>\n",
       "      <th>LENDING_COUNT</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-21</td>\n",
       "      <td>1</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-21</td>\n",
       "      <td>2</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-21</td>\n",
       "      <td>3</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-21</td>\n",
       "      <td>4</td>\n",
       "      <td>858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1655</th>\n",
       "      <td>-44</td>\n",
       "      <td>40</td>\n",
       "      <td>591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1656</th>\n",
       "      <td>-44</td>\n",
       "      <td>41</td>\n",
       "      <td>591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1657</th>\n",
       "      <td>-44</td>\n",
       "      <td>42</td>\n",
       "      <td>591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1658</th>\n",
       "      <td>-44</td>\n",
       "      <td>43</td>\n",
       "      <td>591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1659</th>\n",
       "      <td>-44</td>\n",
       "      <td>44</td>\n",
       "      <td>591</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1660 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      MIN_MONTH  MOB  LENDING_COUNT\n",
       "0           -21    0            858\n",
       "1           -21    1            858\n",
       "2           -21    2            858\n",
       "3           -21    3            858\n",
       "4           -21    4            858\n",
       "...         ...  ...            ...\n",
       "1655        -44   40            591\n",
       "1656        -44   41            591\n",
       "1657        -44   42            591\n",
       "1658        -44   43            591\n",
       "1659        -44   44            591\n",
       "\n",
       "[1660 rows x 3 columns]"
      ]
     },
     "execution_count": 163,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute('select * from mob_count')\n",
    "denominator_df = pd.DataFrame(cursor.fetchall())\n",
    "denominator_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "id": "cea5258b-3aad-4e1e-a869-2fff68f8055e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MOB</th>\n",
       "      <th>CNT</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-55</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-37</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-60</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-21</td>\n",
       "      <td>11</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-56</td>\n",
       "      <td>51</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>360</th>\n",
       "      <td>-28</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>361</th>\n",
       "      <td>-59</td>\n",
       "      <td>18</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>362</th>\n",
       "      <td>-43</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>363</th>\n",
       "      <td>-23</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>364</th>\n",
       "      <td>-53</td>\n",
       "      <td>48</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>365 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     MIN_MONTH  MOB  CNT\n",
       "0          -55    5    2\n",
       "1          -37   33    1\n",
       "2          -60   12    1\n",
       "3          -21   11    2\n",
       "4          -56   51    1\n",
       "..         ...  ...  ...\n",
       "360        -28    5    1\n",
       "361        -59   18    1\n",
       "362        -43   12    1\n",
       "363        -23    8    1\n",
       "364        -53   48    1\n",
       "\n",
       "[365 rows x 3 columns]"
      ]
     },
     "execution_count": 164,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cursor.execute('select * from overdue_group')\n",
    "overdue_group_df = pd.DataFrame(cursor.fetchall())\n",
    "overdue_group_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec6fc509-c8d7-4cfa-a4e2-0190530792d2",
   "metadata": {},
   "source": [
    "### 还原数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "id": "810b3601-d0bb-4e78-bb09-2954c4e3167f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>LENDING_COUNT</th>\n",
       "      <th>OVERDUE_RATIO</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MOB</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">-21</th>\n",
       "      <th>0</th>\n",
       "      <td>858</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>858</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>858</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>858</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>858</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">-44</th>\n",
       "      <th>40</th>\n",
       "      <td>591</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>591</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>591</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>591</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>591</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1660 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "               LENDING_COUNT  OVERDUE_RATIO\n",
       "MIN_MONTH MOB                              \n",
       "-21       0              858            NaN\n",
       "          1              858            NaN\n",
       "          2              858            NaN\n",
       "          3              858            NaN\n",
       "          4              858            NaN\n",
       "...                      ...            ...\n",
       "-44       40             591            NaN\n",
       "          41             591            NaN\n",
       "          42             591            NaN\n",
       "          43             591            NaN\n",
       "          44             591            NaN\n",
       "\n",
       "[1660 rows x 2 columns]"
      ]
     },
     "execution_count": 165,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vintage_df = denominator_df.set_index(['MIN_MONTH', 'MOB'])\n",
    "vintage_df['OVERDUE_RATIO'] = np.nan\n",
    "vintage_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "id": "07d80af4-a8b2-48b8-9078-3614b10ee9e8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MIN_MONTH  MOB\n",
       "-55        5      2\n",
       "-37        33     1\n",
       "-60        12     1\n",
       "-21        11     2\n",
       "-56        51     1\n",
       "                 ..\n",
       "-28        5      1\n",
       "-59        18     1\n",
       "-43        12     1\n",
       "-23        8      1\n",
       "-53        48     1\n",
       "Name: CNT, Length: 365, dtype: int64"
      ]
     },
     "execution_count": 166,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "overdue_group_df = overdue_group_df.set_index(['MIN_MONTH', 'MOB'])['CNT']\n",
    "overdue_group_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "id": "6754f3a0-e06a-4818-9962-ebba8da61129",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "492"
      ]
     },
     "execution_count": 167,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "overdue_group_df.sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45659e5e-ceb0-40a7-82b9-f7ce4f9341d8",
   "metadata": {},
   "source": [
    "### 分析画图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "id": "239a42d7-5c45-403b-aa63-7f612f7257c5",
   "metadata": {},
   "outputs": [],
   "source": [
    "unstack_overdue_df = overdue_group_df.unstack('MIN_MONTH').fillna(0)\n",
    "for i in range(0, 60):\n",
    "    if i not in unstack_overdue_df.index:\n",
    "        unstack_overdue_df.loc[i, :] = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "id": "f7f552b3-be83-4298-b5bc-efe112231a5f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>-60</th>\n",
       "      <th>-59</th>\n",
       "      <th>-58</th>\n",
       "      <th>-57</th>\n",
       "      <th>-56</th>\n",
       "      <th>-55</th>\n",
       "      <th>-54</th>\n",
       "      <th>-53</th>\n",
       "      <th>-52</th>\n",
       "      <th>-51</th>\n",
       "      <th>...</th>\n",
       "      <th>-30</th>\n",
       "      <th>-29</th>\n",
       "      <th>-28</th>\n",
       "      <th>-27</th>\n",
       "      <th>-26</th>\n",
       "      <th>-25</th>\n",
       "      <th>-24</th>\n",
       "      <th>-23</th>\n",
       "      <th>-22</th>\n",
       "      <th>-21</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MOB</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>56</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>10 rows × 40 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "MIN_MONTH  -60  -59  -58  -57  -56  -55  -54  -53  -52  -51  ...  -30  -29  \\\n",
       "MOB                                                          ...             \n",
       "42         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "44         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "45         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "46         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "49         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "52         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "53         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "56         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "57         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "59         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0   \n",
       "\n",
       "MIN_MONTH  -28  -27  -26  -25  -24  -23  -22  -21  \n",
       "MOB                                                \n",
       "42         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "44         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "45         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "46         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "49         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "52         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "53         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "56         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "57         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "59         0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
       "\n",
       "[10 rows x 40 columns]"
      ]
     },
     "execution_count": 170,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "unstack_overdue_df.tail(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "id": "33a88a40-06b7-4030-bb30-dfe8a8cf033a",
   "metadata": {},
   "outputs": [],
   "source": [
    "cumsum_overdue_df = unstack_overdue_df.sort_index().cumsum().stack()\n",
    "cumsum_overdue_df = cumsum_overdue_df.swaplevel()\n",
    "\n",
    "vintage_df['OVERDUE_RATIO'] = (cumsum_overdue_df / vintage_df['LENDING_COUNT'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 172,
   "id": "13163582-74c4-4f81-a157-4dd35da9e348",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th>MOB</th>\n",
       "      <th>LENDING_COUNT</th>\n",
       "      <th>OVERDUE_RATIO</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-21</td>\n",
       "      <td>0</td>\n",
       "      <td>858</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-21</td>\n",
       "      <td>1</td>\n",
       "      <td>858</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-21</td>\n",
       "      <td>2</td>\n",
       "      <td>858</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-21</td>\n",
       "      <td>3</td>\n",
       "      <td>858</td>\n",
       "      <td>0.003497</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-21</td>\n",
       "      <td>4</td>\n",
       "      <td>858</td>\n",
       "      <td>0.004662</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1655</th>\n",
       "      <td>-44</td>\n",
       "      <td>40</td>\n",
       "      <td>591</td>\n",
       "      <td>0.020305</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1656</th>\n",
       "      <td>-44</td>\n",
       "      <td>41</td>\n",
       "      <td>591</td>\n",
       "      <td>0.020305</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1657</th>\n",
       "      <td>-44</td>\n",
       "      <td>42</td>\n",
       "      <td>591</td>\n",
       "      <td>0.020305</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1658</th>\n",
       "      <td>-44</td>\n",
       "      <td>43</td>\n",
       "      <td>591</td>\n",
       "      <td>0.020305</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1659</th>\n",
       "      <td>-44</td>\n",
       "      <td>44</td>\n",
       "      <td>591</td>\n",
       "      <td>0.020305</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1660 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      MIN_MONTH  MOB  LENDING_COUNT  OVERDUE_RATIO\n",
       "0           -21    0            858       0.000000\n",
       "1           -21    1            858       0.000000\n",
       "2           -21    2            858       0.000000\n",
       "3           -21    3            858       0.003497\n",
       "4           -21    4            858       0.004662\n",
       "...         ...  ...            ...            ...\n",
       "1655        -44   40            591       0.020305\n",
       "1656        -44   41            591       0.020305\n",
       "1657        -44   42            591       0.020305\n",
       "1658        -44   43            591       0.020305\n",
       "1659        -44   44            591       0.020305\n",
       "\n",
       "[1660 rows x 4 columns]"
      ]
     },
     "execution_count": 172,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vintage_df.reset_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "id": "ede2d67f-09a6-44c4-a020-ab72eb5aa545",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>MOB</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>...</th>\n",
       "      <th>51</th>\n",
       "      <th>52</th>\n",
       "      <th>53</th>\n",
       "      <th>54</th>\n",
       "      <th>55</th>\n",
       "      <th>56</th>\n",
       "      <th>57</th>\n",
       "      <th>58</th>\n",
       "      <th>59</th>\n",
       "      <th>60</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MIN_MONTH</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>-60</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002410</td>\n",
       "      <td>0.002410</td>\n",
       "      <td>0.007229</td>\n",
       "      <td>0.007229</td>\n",
       "      <td>0.009639</td>\n",
       "      <td>...</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.028916</td>\n",
       "      <td>0.031325</td>\n",
       "      <td>0.031325</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-59</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.004926</td>\n",
       "      <td>0.004926</td>\n",
       "      <td>0.004926</td>\n",
       "      <td>0.007389</td>\n",
       "      <td>0.007389</td>\n",
       "      <td>0.007389</td>\n",
       "      <td>0.012315</td>\n",
       "      <td>...</td>\n",
       "      <td>0.029557</td>\n",
       "      <td>0.029557</td>\n",
       "      <td>0.029557</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>0.032020</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-58</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.004545</td>\n",
       "      <td>0.006818</td>\n",
       "      <td>0.006818</td>\n",
       "      <td>...</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-57</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002500</td>\n",
       "      <td>0.002500</td>\n",
       "      <td>0.002500</td>\n",
       "      <td>0.007500</td>\n",
       "      <td>0.007500</td>\n",
       "      <td>0.007500</td>\n",
       "      <td>...</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>0.025000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-56</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.004255</td>\n",
       "      <td>0.004255</td>\n",
       "      <td>0.008511</td>\n",
       "      <td>0.010638</td>\n",
       "      <td>0.010638</td>\n",
       "      <td>0.017021</td>\n",
       "      <td>0.017021</td>\n",
       "      <td>0.021277</td>\n",
       "      <td>...</td>\n",
       "      <td>0.036170</td>\n",
       "      <td>0.036170</td>\n",
       "      <td>0.036170</td>\n",
       "      <td>0.036170</td>\n",
       "      <td>0.038298</td>\n",
       "      <td>0.038298</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-55</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002058</td>\n",
       "      <td>0.006173</td>\n",
       "      <td>0.012346</td>\n",
       "      <td>0.016461</td>\n",
       "      <td>0.022634</td>\n",
       "      <td>0.022634</td>\n",
       "      <td>0.022634</td>\n",
       "      <td>0.024691</td>\n",
       "      <td>...</td>\n",
       "      <td>0.045267</td>\n",
       "      <td>0.045267</td>\n",
       "      <td>0.045267</td>\n",
       "      <td>0.045267</td>\n",
       "      <td>0.045267</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-54</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002137</td>\n",
       "      <td>0.004274</td>\n",
       "      <td>0.004274</td>\n",
       "      <td>0.006410</td>\n",
       "      <td>0.012821</td>\n",
       "      <td>0.012821</td>\n",
       "      <td>0.017094</td>\n",
       "      <td>...</td>\n",
       "      <td>0.032051</td>\n",
       "      <td>0.032051</td>\n",
       "      <td>0.032051</td>\n",
       "      <td>0.032051</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-53</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.002028</td>\n",
       "      <td>0.002028</td>\n",
       "      <td>0.002028</td>\n",
       "      <td>0.004057</td>\n",
       "      <td>0.004057</td>\n",
       "      <td>0.008114</td>\n",
       "      <td>0.010142</td>\n",
       "      <td>0.010142</td>\n",
       "      <td>0.012170</td>\n",
       "      <td>...</td>\n",
       "      <td>0.028398</td>\n",
       "      <td>0.028398</td>\n",
       "      <td>0.028398</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-52</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.007233</td>\n",
       "      <td>0.009042</td>\n",
       "      <td>0.009042</td>\n",
       "      <td>0.009042</td>\n",
       "      <td>0.012658</td>\n",
       "      <td>0.012658</td>\n",
       "      <td>0.014467</td>\n",
       "      <td>0.016275</td>\n",
       "      <td>...</td>\n",
       "      <td>0.023508</td>\n",
       "      <td>0.023508</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-51</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.001718</td>\n",
       "      <td>0.001718</td>\n",
       "      <td>0.003436</td>\n",
       "      <td>0.003436</td>\n",
       "      <td>0.008591</td>\n",
       "      <td>0.010309</td>\n",
       "      <td>0.013746</td>\n",
       "      <td>0.013746</td>\n",
       "      <td>0.015464</td>\n",
       "      <td>...</td>\n",
       "      <td>0.020619</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-50</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001842</td>\n",
       "      <td>0.003683</td>\n",
       "      <td>0.007366</td>\n",
       "      <td>0.007366</td>\n",
       "      <td>0.007366</td>\n",
       "      <td>0.007366</td>\n",
       "      <td>0.007366</td>\n",
       "      <td>0.009208</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-49</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.005425</td>\n",
       "      <td>0.005425</td>\n",
       "      <td>0.005425</td>\n",
       "      <td>0.007233</td>\n",
       "      <td>0.007233</td>\n",
       "      <td>0.009042</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-48</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001721</td>\n",
       "      <td>0.005164</td>\n",
       "      <td>0.006885</td>\n",
       "      <td>0.008606</td>\n",
       "      <td>0.010327</td>\n",
       "      <td>0.012048</td>\n",
       "      <td>0.012048</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-47</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.003273</td>\n",
       "      <td>0.004910</td>\n",
       "      <td>0.004910</td>\n",
       "      <td>0.013093</td>\n",
       "      <td>0.013093</td>\n",
       "      <td>0.013093</td>\n",
       "      <td>0.014730</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-46</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001739</td>\n",
       "      <td>0.003478</td>\n",
       "      <td>0.005217</td>\n",
       "      <td>0.006957</td>\n",
       "      <td>0.012174</td>\n",
       "      <td>0.012174</td>\n",
       "      <td>0.012174</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-45</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001653</td>\n",
       "      <td>0.004959</td>\n",
       "      <td>0.006612</td>\n",
       "      <td>0.006612</td>\n",
       "      <td>0.009917</td>\n",
       "      <td>0.009917</td>\n",
       "      <td>0.011570</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-44</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.001692</td>\n",
       "      <td>0.003384</td>\n",
       "      <td>0.005076</td>\n",
       "      <td>0.005076</td>\n",
       "      <td>0.006768</td>\n",
       "      <td>0.008460</td>\n",
       "      <td>0.011844</td>\n",
       "      <td>0.011844</td>\n",
       "      <td>0.011844</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-43</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001541</td>\n",
       "      <td>0.001541</td>\n",
       "      <td>0.004622</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-42</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001425</td>\n",
       "      <td>0.004274</td>\n",
       "      <td>0.007123</td>\n",
       "      <td>0.007123</td>\n",
       "      <td>0.009972</td>\n",
       "      <td>0.009972</td>\n",
       "      <td>0.011396</td>\n",
       "      <td>0.012821</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-41</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001435</td>\n",
       "      <td>0.008608</td>\n",
       "      <td>0.008608</td>\n",
       "      <td>0.010043</td>\n",
       "      <td>0.011478</td>\n",
       "      <td>0.012912</td>\n",
       "      <td>0.014347</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-40</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002714</td>\n",
       "      <td>0.002714</td>\n",
       "      <td>0.006784</td>\n",
       "      <td>0.008141</td>\n",
       "      <td>0.008141</td>\n",
       "      <td>0.008141</td>\n",
       "      <td>0.008141</td>\n",
       "      <td>0.010855</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-39</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.001203</td>\n",
       "      <td>0.001203</td>\n",
       "      <td>0.001203</td>\n",
       "      <td>0.001203</td>\n",
       "      <td>0.003610</td>\n",
       "      <td>0.003610</td>\n",
       "      <td>0.004813</td>\n",
       "      <td>0.006017</td>\n",
       "      <td>0.006017</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-38</th>\n",
       "      <td>0.00134</td>\n",
       "      <td>0.001340</td>\n",
       "      <td>0.001340</td>\n",
       "      <td>0.001340</td>\n",
       "      <td>0.002681</td>\n",
       "      <td>0.002681</td>\n",
       "      <td>0.002681</td>\n",
       "      <td>0.004021</td>\n",
       "      <td>0.005362</td>\n",
       "      <td>0.006702</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-37</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001389</td>\n",
       "      <td>0.001389</td>\n",
       "      <td>0.001389</td>\n",
       "      <td>0.006944</td>\n",
       "      <td>0.006944</td>\n",
       "      <td>0.008333</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-36</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001443</td>\n",
       "      <td>0.002886</td>\n",
       "      <td>0.005772</td>\n",
       "      <td>0.005772</td>\n",
       "      <td>0.007215</td>\n",
       "      <td>0.010101</td>\n",
       "      <td>0.011544</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-35</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001312</td>\n",
       "      <td>0.001312</td>\n",
       "      <td>0.001312</td>\n",
       "      <td>0.001312</td>\n",
       "      <td>0.002625</td>\n",
       "      <td>0.005249</td>\n",
       "      <td>0.006562</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-34</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001344</td>\n",
       "      <td>0.002688</td>\n",
       "      <td>0.006720</td>\n",
       "      <td>0.006720</td>\n",
       "      <td>0.008065</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-33</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001377</td>\n",
       "      <td>0.001377</td>\n",
       "      <td>0.001377</td>\n",
       "      <td>0.001377</td>\n",
       "      <td>0.001377</td>\n",
       "      <td>0.004132</td>\n",
       "      <td>0.004132</td>\n",
       "      <td>0.004132</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-32</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001344</td>\n",
       "      <td>0.001344</td>\n",
       "      <td>0.002688</td>\n",
       "      <td>0.002688</td>\n",
       "      <td>0.004032</td>\n",
       "      <td>0.004032</td>\n",
       "      <td>0.006720</td>\n",
       "      <td>0.006720</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-31</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002674</td>\n",
       "      <td>0.004011</td>\n",
       "      <td>0.004011</td>\n",
       "      <td>0.004011</td>\n",
       "      <td>0.004011</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-30</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001244</td>\n",
       "      <td>0.001244</td>\n",
       "      <td>0.002488</td>\n",
       "      <td>0.002488</td>\n",
       "      <td>0.006219</td>\n",
       "      <td>0.006219</td>\n",
       "      <td>0.008706</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-29</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001282</td>\n",
       "      <td>0.002564</td>\n",
       "      <td>0.005128</td>\n",
       "      <td>0.005128</td>\n",
       "      <td>0.006410</td>\n",
       "      <td>0.007692</td>\n",
       "      <td>0.007692</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-28</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001241</td>\n",
       "      <td>0.001241</td>\n",
       "      <td>0.001241</td>\n",
       "      <td>0.002481</td>\n",
       "      <td>0.003722</td>\n",
       "      <td>0.004963</td>\n",
       "      <td>0.006203</td>\n",
       "      <td>0.007444</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-27</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001196</td>\n",
       "      <td>0.002392</td>\n",
       "      <td>0.003589</td>\n",
       "      <td>0.003589</td>\n",
       "      <td>0.004785</td>\n",
       "      <td>0.005981</td>\n",
       "      <td>0.008373</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-26</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002660</td>\n",
       "      <td>0.003989</td>\n",
       "      <td>0.005319</td>\n",
       "      <td>0.005319</td>\n",
       "      <td>0.006649</td>\n",
       "      <td>0.006649</td>\n",
       "      <td>0.006649</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-25</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001159</td>\n",
       "      <td>0.002317</td>\n",
       "      <td>0.004635</td>\n",
       "      <td>0.006952</td>\n",
       "      <td>0.006952</td>\n",
       "      <td>0.010429</td>\n",
       "      <td>0.010429</td>\n",
       "      <td>0.010429</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-24</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001119</td>\n",
       "      <td>0.002237</td>\n",
       "      <td>0.003356</td>\n",
       "      <td>0.003356</td>\n",
       "      <td>0.004474</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-23</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.002225</td>\n",
       "      <td>0.004449</td>\n",
       "      <td>0.005562</td>\n",
       "      <td>0.005562</td>\n",
       "      <td>0.005562</td>\n",
       "      <td>0.006674</td>\n",
       "      <td>0.006674</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-22</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.001156</td>\n",
       "      <td>0.002312</td>\n",
       "      <td>0.002312</td>\n",
       "      <td>0.003468</td>\n",
       "      <td>0.003468</td>\n",
       "      <td>0.004624</td>\n",
       "      <td>0.005780</td>\n",
       "      <td>0.005780</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>-21</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.003497</td>\n",
       "      <td>0.004662</td>\n",
       "      <td>0.004662</td>\n",
       "      <td>0.006993</td>\n",
       "      <td>0.009324</td>\n",
       "      <td>0.010490</td>\n",
       "      <td>0.010490</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>40 rows × 61 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "MOB             0         1         2         3         4         5   \\\n",
       "MIN_MONTH                                                              \n",
       "-60        0.00000  0.000000  0.000000  0.000000  0.000000  0.002410   \n",
       "-59        0.00000  0.000000  0.000000  0.004926  0.004926  0.004926   \n",
       "-58        0.00000  0.000000  0.000000  0.000000  0.000000  0.000000   \n",
       "-57        0.00000  0.000000  0.000000  0.000000  0.002500  0.002500   \n",
       "-56        0.00000  0.000000  0.004255  0.004255  0.008511  0.010638   \n",
       "-55        0.00000  0.000000  0.002058  0.006173  0.012346  0.016461   \n",
       "-54        0.00000  0.000000  0.000000  0.002137  0.004274  0.004274   \n",
       "-53        0.00000  0.002028  0.002028  0.002028  0.004057  0.004057   \n",
       "-52        0.00000  0.000000  0.007233  0.009042  0.009042  0.009042   \n",
       "-51        0.00000  0.001718  0.001718  0.003436  0.003436  0.008591   \n",
       "-50        0.00000  0.000000  0.001842  0.003683  0.007366  0.007366   \n",
       "-49        0.00000  0.000000  0.000000  0.000000  0.005425  0.005425   \n",
       "-48        0.00000  0.000000  0.000000  0.001721  0.005164  0.006885   \n",
       "-47        0.00000  0.000000  0.000000  0.003273  0.004910  0.004910   \n",
       "-46        0.00000  0.000000  0.000000  0.001739  0.003478  0.005217   \n",
       "-45        0.00000  0.000000  0.000000  0.001653  0.004959  0.006612   \n",
       "-44        0.00000  0.001692  0.003384  0.005076  0.005076  0.006768   \n",
       "-43        0.00000  0.000000  0.000000  0.000000  0.000000  0.000000   \n",
       "-42        0.00000  0.000000  0.001425  0.004274  0.007123  0.007123   \n",
       "-41        0.00000  0.000000  0.000000  0.001435  0.008608  0.008608   \n",
       "-40        0.00000  0.000000  0.002714  0.002714  0.006784  0.008141   \n",
       "-39        0.00000  0.001203  0.001203  0.001203  0.001203  0.003610   \n",
       "-38        0.00134  0.001340  0.001340  0.001340  0.002681  0.002681   \n",
       "-37        0.00000  0.000000  0.000000  0.000000  0.001389  0.001389   \n",
       "-36        0.00000  0.000000  0.000000  0.001443  0.002886  0.005772   \n",
       "-35        0.00000  0.000000  0.000000  0.001312  0.001312  0.001312   \n",
       "-34        0.00000  0.000000  0.000000  0.000000  0.000000  0.001344   \n",
       "-33        0.00000  0.000000  0.001377  0.001377  0.001377  0.001377   \n",
       "-32        0.00000  0.000000  0.001344  0.001344  0.002688  0.002688   \n",
       "-31        0.00000  0.000000  0.000000  0.000000  0.000000  0.002674   \n",
       "-30        0.00000  0.000000  0.000000  0.001244  0.001244  0.002488   \n",
       "-29        0.00000  0.000000  0.000000  0.001282  0.002564  0.005128   \n",
       "-28        0.00000  0.000000  0.001241  0.001241  0.001241  0.002481   \n",
       "-27        0.00000  0.000000  0.000000  0.001196  0.002392  0.003589   \n",
       "-26        0.00000  0.000000  0.000000  0.002660  0.003989  0.005319   \n",
       "-25        0.00000  0.000000  0.001159  0.002317  0.004635  0.006952   \n",
       "-24        0.00000  0.000000  0.000000  0.000000  0.000000  0.001119   \n",
       "-23        0.00000  0.000000  0.000000  0.002225  0.004449  0.005562   \n",
       "-22        0.00000  0.000000  0.001156  0.002312  0.002312  0.003468   \n",
       "-21        0.00000  0.000000  0.000000  0.003497  0.004662  0.004662   \n",
       "\n",
       "MOB              6         7         8         9   ...        51        52  \\\n",
       "MIN_MONTH                                          ...                       \n",
       "-60        0.002410  0.007229  0.007229  0.009639  ...  0.028916  0.028916   \n",
       "-59        0.007389  0.007389  0.007389  0.012315  ...  0.029557  0.029557   \n",
       "-58        0.000000  0.004545  0.006818  0.006818  ...  0.025000  0.025000   \n",
       "-57        0.002500  0.007500  0.007500  0.007500  ...  0.025000  0.025000   \n",
       "-56        0.010638  0.017021  0.017021  0.021277  ...  0.036170  0.036170   \n",
       "-55        0.022634  0.022634  0.022634  0.024691  ...  0.045267  0.045267   \n",
       "-54        0.006410  0.012821  0.012821  0.017094  ...  0.032051  0.032051   \n",
       "-53        0.008114  0.010142  0.010142  0.012170  ...  0.028398  0.028398   \n",
       "-52        0.012658  0.012658  0.014467  0.016275  ...  0.023508  0.023508   \n",
       "-51        0.010309  0.013746  0.013746  0.015464  ...  0.020619       NaN   \n",
       "-50        0.007366  0.007366  0.007366  0.009208  ...       NaN       NaN   \n",
       "-49        0.005425  0.007233  0.007233  0.009042  ...       NaN       NaN   \n",
       "-48        0.008606  0.010327  0.012048  0.012048  ...       NaN       NaN   \n",
       "-47        0.013093  0.013093  0.013093  0.014730  ...       NaN       NaN   \n",
       "-46        0.006957  0.012174  0.012174  0.012174  ...       NaN       NaN   \n",
       "-45        0.006612  0.009917  0.009917  0.011570  ...       NaN       NaN   \n",
       "-44        0.008460  0.011844  0.011844  0.011844  ...       NaN       NaN   \n",
       "-43        0.000000  0.001541  0.001541  0.004622  ...       NaN       NaN   \n",
       "-42        0.009972  0.009972  0.011396  0.012821  ...       NaN       NaN   \n",
       "-41        0.010043  0.011478  0.012912  0.014347  ...       NaN       NaN   \n",
       "-40        0.008141  0.008141  0.008141  0.010855  ...       NaN       NaN   \n",
       "-39        0.003610  0.004813  0.006017  0.006017  ...       NaN       NaN   \n",
       "-38        0.002681  0.004021  0.005362  0.006702  ...       NaN       NaN   \n",
       "-37        0.001389  0.006944  0.006944  0.008333  ...       NaN       NaN   \n",
       "-36        0.005772  0.007215  0.010101  0.011544  ...       NaN       NaN   \n",
       "-35        0.001312  0.002625  0.005249  0.006562  ...       NaN       NaN   \n",
       "-34        0.002688  0.006720  0.006720  0.008065  ...       NaN       NaN   \n",
       "-33        0.001377  0.004132  0.004132  0.004132  ...       NaN       NaN   \n",
       "-32        0.004032  0.004032  0.006720  0.006720  ...       NaN       NaN   \n",
       "-31        0.004011  0.004011  0.004011  0.004011  ...       NaN       NaN   \n",
       "-30        0.002488  0.006219  0.006219  0.008706  ...       NaN       NaN   \n",
       "-29        0.005128  0.006410  0.007692  0.007692  ...       NaN       NaN   \n",
       "-28        0.003722  0.004963  0.006203  0.007444  ...       NaN       NaN   \n",
       "-27        0.003589  0.004785  0.005981  0.008373  ...       NaN       NaN   \n",
       "-26        0.005319  0.006649  0.006649  0.006649  ...       NaN       NaN   \n",
       "-25        0.006952  0.010429  0.010429  0.010429  ...       NaN       NaN   \n",
       "-24        0.002237  0.003356  0.003356  0.004474  ...       NaN       NaN   \n",
       "-23        0.005562  0.005562  0.006674  0.006674  ...       NaN       NaN   \n",
       "-22        0.003468  0.004624  0.005780  0.005780  ...       NaN       NaN   \n",
       "-21        0.006993  0.009324  0.010490  0.010490  ...       NaN       NaN   \n",
       "\n",
       "MOB              53        54        55        56        57        58  \\\n",
       "MIN_MONTH                                                               \n",
       "-60        0.028916  0.028916  0.028916  0.028916  0.028916  0.031325   \n",
       "-59        0.029557  0.032020  0.032020  0.032020  0.032020  0.032020   \n",
       "-58        0.025000  0.025000  0.025000  0.025000  0.025000  0.025000   \n",
       "-57        0.025000  0.025000  0.025000  0.025000  0.025000       NaN   \n",
       "-56        0.036170  0.036170  0.038298  0.038298       NaN       NaN   \n",
       "-55        0.045267  0.045267  0.045267       NaN       NaN       NaN   \n",
       "-54        0.032051  0.032051       NaN       NaN       NaN       NaN   \n",
       "-53        0.028398       NaN       NaN       NaN       NaN       NaN   \n",
       "-52             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-51             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-50             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-49             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-48             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-47             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-46             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-45             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-44             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-43             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-42             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-41             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-40             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-39             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-38             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-37             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-36             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-35             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-34             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-33             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-32             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-31             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-30             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-29             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-28             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-27             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-26             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-25             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-24             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-23             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-22             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "-21             NaN       NaN       NaN       NaN       NaN       NaN   \n",
       "\n",
       "MOB              59  60  \n",
       "MIN_MONTH                \n",
       "-60        0.031325 NaN  \n",
       "-59        0.032020 NaN  \n",
       "-58             NaN NaN  \n",
       "-57             NaN NaN  \n",
       "-56             NaN NaN  \n",
       "-55             NaN NaN  \n",
       "-54             NaN NaN  \n",
       "-53             NaN NaN  \n",
       "-52             NaN NaN  \n",
       "-51             NaN NaN  \n",
       "-50             NaN NaN  \n",
       "-49             NaN NaN  \n",
       "-48             NaN NaN  \n",
       "-47             NaN NaN  \n",
       "-46             NaN NaN  \n",
       "-45             NaN NaN  \n",
       "-44             NaN NaN  \n",
       "-43             NaN NaN  \n",
       "-42             NaN NaN  \n",
       "-41             NaN NaN  \n",
       "-40             NaN NaN  \n",
       "-39             NaN NaN  \n",
       "-38             NaN NaN  \n",
       "-37             NaN NaN  \n",
       "-36             NaN NaN  \n",
       "-35             NaN NaN  \n",
       "-34             NaN NaN  \n",
       "-33             NaN NaN  \n",
       "-32             NaN NaN  \n",
       "-31             NaN NaN  \n",
       "-30             NaN NaN  \n",
       "-29             NaN NaN  \n",
       "-28             NaN NaN  \n",
       "-27             NaN NaN  \n",
       "-26             NaN NaN  \n",
       "-25             NaN NaN  \n",
       "-24             NaN NaN  \n",
       "-23             NaN NaN  \n",
       "-22             NaN NaN  \n",
       "-21             NaN NaN  \n",
       "\n",
       "[40 rows x 61 columns]"
      ]
     },
     "execution_count": 173,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vintage_wide_df = vintage_df.reset_index().pivot(index = 'MIN_MONTH',\n",
    "                             columns = 'MOB',\n",
    "                             values = 'OVERDUE_RATIO')\n",
    "vintage_wide_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a22bdb7d-d583-4ee6-afbf-3041cb989919",
   "metadata": {},
   "source": [
    "### 画图展示"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "id": "fcef76e8-2330-4a26-9833-d886faea242c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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33+fP//8k9zcXAYOHMiECROqlKFTp05s2bIFg8HAzp076dixI1999RWjRo2idevWNcpvsVgYO3Yst99+Ozk5Ofzvf/9j4sSJnD17lrfffpvXXnutfIVQ29OfEIK1a9diNpvp0KEDAHa7nUcffZTk5GRSUlJwcXHh6aefLm/z0EMP0bNnT/Ly8njjjTdYtGhRtf1v2bKFkSNHotFoapSjOj777DOCg4PJzc0lOzub999/H5lMxpIlS2jZsiWrV69Gr9fz0ksvERcXx4QJE5g9eza5ubmMHj2asWPHYjaby/ur63cqPT2dMWPG8Prrr1NQUMCnn37KvffeS25ubnlfS5YsYf78+eh0Onx9fXn22WdZv349Op2OPXv20K1btyrndOLECdq1a1eh7K+//uK1115j06ZNhIaG8tBDD7F58+YaVyZpaWmkpaVx8uRJQkJCCA8P58033yxvc+rUKbp27Vpev3Xr1jg6OlbYgqqN3r17ExwczM6dOwFQq9UsXryYoqIi1q5dy7fffsvKlSsBmDJlCj/99FN522PHjpGens7o0aPZtGkTf//9d/mKYNmyZXh7e9c6fl5eHsuXL6d79+5A9b9dgMcee4x58+ah0+k4efIkQ4cORa1Ws379egIDA8tXzIGBgXWau6urK8OHDy+fe21MmTIFhULBuXPnOHLkCJs2beK7774rvx4ZGUlSUhJarbZO/UEz3WLKz8/Hx8enxi2OuvDMM8/QokULgoKCGDhwIH369KF79+44OTlx9913c+TIkXr1O3XqVFxdXXFycuKtt97i2LFjdd5rfOihh/jll1+Aspvrr7/+ykMPPQSUbRu9+uqrREZGolAoeO211zh69CjJycmV+nnssccoLi6mT58+DBw4kK5du7JkyRKee+45ZsyYwaBBgyqdhVxg37596PV6XnnlFRwdHRk6dCh33HFHuVx14bfffsPDwwO1Ws24ceN47bXX8PDwAMDb25t7770XlUqFq6sr//nPf9ixYwcAKSkpHDhwgHfffRcnJycGDRrE2LFjqx0nPz+fgICAOst1OUqlkszMTJKTk1EqlQwcOBCZTFZl3WXLljFmzBiGDx+OUqnkxRdfxGAwsGfPnvI6df1O/fTTT4wePZrRo0cjl8sZPnw4UVFRrFu3rryvRx55hI4dO6JQKFAoFMjlck6ePInBYCAgIICOHTtW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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot vintage line chart\n",
    "plt.rcParams['figure.facecolor'] = 'white'\n",
    "vintage_wide_df.T.plot(legend = False, grid = True, title = 'Cumulative % of Bad Customers (> 60 Days Past Due)')\n",
    "plt.xlabel('Months on Books')\n",
    "plt.ylabel('Cumulative % > 60 Days Past Due')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2581cc68-61a0-429f-98d6-d3abc0d2dfd3",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
